[英]Joining Multiple tables based on a unique ID in one table
我想根据从第一个表中获取的 ID 加入多个表。
这是一个例子:
地点:
ID | 位置 ID |
---|---|
1 | 25 |
2 | 15 |
3 | 33 |
序列化表:
位置 ID | 产品ID | 序列号 |
---|---|---|
25 | 4545454 | ABC123 |
25 | 1231233 | CBA321 |
25 | 5432121 | BCA213 |
非序列化表:
位置 ID | 产品ID | 数量 |
---|---|---|
25 | 6786788 | 3 |
25 | 9898989 | 15 |
25 | 8786678 | 24 |
我正在尝试返回一个看起来像这个结果表的表
ID | Location_ID | 产品_ID | 序列号 | 数量 |
---|---|---|---|---|
1 | 25 | 4545454 | ABC123 | NULL |
1 | 25 | 1231233 | CBA321 | NULL |
1 | 25 | 5432121 | BCA213 | NULL |
1 | 25 | 6786788 | NULL | 3 |
1 | 25 | 9898989 | NULL | 15 |
1 | 25 | 8786678 | NULL | 24 |
SELECT
Location.ID AS ID,
Location.LocationID AS Location_ID,
*** NOT SURE how to fetch ProductID From Both Tables *** Product_ID,
Serialized.SerialNumber AS Serial_Num,
NonSerialized.Quantity AS Quantity,
FROM Location
INNER JOIN NonSerialized ON Location.LocationID = NonSerialized.LocationID
INNER JOIN Serialized ON Location.LocationID = Serialized.LocationID
WHERE Location.ID = 1
select loc.Id, loc.locationId, s.ProductId, s.SerialNumber, null as Quantity
from Location loc
inner join Serialized s on loc.LocationId = s.locationId
where loc.Id = 1
union
select loc.Id, loc.locationId, ns.ProductId, null, ns.Quantity
from Location loc
inner join nonSerialized ns on loc.LocationId = ns.locationId
where loc.Id = 1
会做的。 您需要合并 2 组数据中的数据。
你需要做一个联合,从两个表中获取行:
select loc.ID, loc.LocationID, s.ProductID, s.SerialNumber,
null as Quantity
from Location loc
join Serialized s on s.ID = loc.ID
union all
select loc.ID, loc.LocationID, ns.ProductID, null as SerialNumber,
ns.Quantity
from Location loc
join NonSerialized ns on ns.ID = loc.ID
为避免多次加入Location
,您可以将UNION ALL
放在派生表中
select
loc.Id,
loc.locationId,
s.ProductId,
s.SerialNumber,
s.Quantity
from Location loc
inner join (
select
s.locationId,
s.SerialNumber,
null as Quantity
from Serialized s
union all
select
ns.locationId,
null,
ns.Quantity
from nonSerialized ns
) s on loc.LocationId = s.locationId
where loc.Id = 1;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.