繁体   English   中英

使用JOIN多对多表进行SQL查询

[英]SQL query with JOIN many-to-many table

我有三个表(简化):

项目(ID,项目名称)

1 Item1
2 Item2
3 Item3

供应商(编号,SupplierName)

1 Suppler1
2 Suppler2

SupplierM2MItem(ItemId,SupplierId)–外键

1 1
1 2
2 1

我需要像这样的所有物品的所有供应商:

Item1 Supplier1
Item1 Supplier2
Item2 Supplier1
Item3

我相信实现这一目标并不难,但我不能。 你能帮忙吗

正确的解决方案使用外部联接:

SELECT I.Item, S.Supplier
FROM Item I LEFT JOIN
     SupplierM2MItem S2I 
     ON I.Id = S2I.ItemID LEFT JOIN
     Supplier S
     ON S2I.SupplierID = S.ID;

我认为这是一个内部联接加上一个外部联接。 尝试这个:

SELECT I.Item, S.Supplier
FROM Supplier S
LEFT OUTER JOIN
SupplierM2MItem S2I 
ON S2I.SupplierID = S.ID
INNER JOIN
Item I
ON I.Id = S2I.ItemID

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM