【发布时间】:2013-09-09 18:41:12
【问题描述】:
我有三个表格,供应商、产品和交付。我想显示交货表中的供应商名称和数量。有 5 家不同的供应商,有 12 次交货。我希望连接的表应该包含 12 行名称和交货。
这是我的代码。
SELECT Suppliers.SNAME, Deliveries.QTY
FROM Suppliers, Deliveries
INNER JOIN Products
ON Deliveries.P=Products.Penter (typo, should be Products.P)
输出是 60 行,其中包含许多重复项和一些不正确的匹配项。
表:
【问题讨论】:
-
5x12 = 60,听起来您的
JOIN可以使用其他标准。发布表结构/示例数据,我们可以确定它。 -
您需要在 Suppliers 和其他两个表之间指定
JOIN条件。 -
我认为您也必须定义供应商和交付之间的连接。由于您在示例中交叉加入了它们
-
使用
group by这样就可以解决问题 -
您正在使用
JOIN关键字混合隐式连接(在 where 子句中)和显式连接。不要那样做。
标签: sql inner-join