我有三个表,供应商,产品和交货。我想从交货表中显示供应商名称和数量。有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行,其中包含许多重复项和一些不正确的匹配项。
表格:
最佳答案
终止已弃用的隐式联接,并指定JOIN
条件,不确定您的表结构,例如:
SELECT s.SNAME, d.QTY
FROM Deliveries d
INNER JOIN Suppliers s
ON d.s = s.s
INNER JOIN Products p
ON d.p = p.p
未指定的隐式
JOIN
即:SELECT Suppliers.SNAME, Deliveries.QTY
FROM Suppliers, Deliveries
将导致每个表中的每个记录联接到另一个表中的每个记录,在您的情况下,将是5条记录和12条记录= 60个组合。
关于sql - SQL内部联接创建重复项,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18644640/