Suppliers
表
Part Number Supplier
XXX A
XXX B
YYY C
Part Numbers
表
PK_ID Part Number
1 XXX
2 YYY
我想根据FK_ID
中的PK_ID
附加列Part Numbers
选择它:
FK_ID Part Number Supplier
1 XXX A
1 XXX B
2 YYY C
什么不起作用:
SELECT s.`Part Number`, s.`Supplier`, p.`PK_ID`
FROM `Suppliers` AS s, `Part Numbers` AS p
JOIN ON s.`Part Number` = p.`Part Number`
答案 0 :(得分:1)
永远不要在FROM
子句中使用逗号。始终使用明确的JOIN
语法:
SELECT s.`Part Number`, s.Supplier, p.PK_ID`
FROM Suppliers JOIN
`Part Numbers` p
ON s.`Part Number` = p.`Part Number` ;
我鼓励您为没有空格的表和列命名,因此您无需转义名称。必须在SQL语句中添加一堆反引号只会分散写入或读取查询的注意力。
答案 1 :(得分:0)
尝试:
SELECT s.`Part Number`, s.`Supplier`, p.`PK_ID`
FROM `Suppliers` AS s
JOIN `Part Numbers` AS p ON s.`Part Number` = p.`Part Number`
答案 2 :(得分:0)
您在查询中的JOIN
之前使用逗号,这是不允许的。您可以使用自然连接,因为您具有相同的列名Part Number
SELECT `Part Number`, Supplier, PK_ID
FROM Suppliers NATURAL JOIN
`Part Numbers`;
避免使用包含空格的列名,而是使用_来连接列的名称
请参阅指定的链接以获取更多详细信息:Naming Conventions