【发布时间】:2017-10-22 15:21:03
【问题描述】:
美好的一天。
我知道这个问题已经被问过了,但我很难解决我的问题。
我想加入 3 张桌子。这是我的表格的样子:
Order_Header(Order_Header_ID{PK}, Order_Date, Order_Time, Order_Complete)
Order_Line(Order_Line_ID{PK}, Product_ID{FK}, Order_Header_ID{FK},Quantity)
Products(Product_ID{PK}, Description, Cost)
我想加入三个表,以便在一个表中显示三个表中的 Order_Header_ID、数量和描述,其中 Order_Complete = 'YES'。 我有以下 SQL 显示所有信息但不加入它们。
SELECT
Order_Header.Order_Header_ID,
Products.Description,
Order_Line.Quantity
FROM Order_Header, Products, Order_Line
WHERE Order_Complete = 'yes'
这个想法是它只列出一次 Order_Header_ID 以及相应的描述和数量。
提前谢谢你
【问题讨论】:
-
" 我有以下 SQL 显示所有信息但不加入它们。"
FROM Order_Header, Products, Order_Line WHERE Order_Complete = 'yes'实际上你在这里使用的是旧的隐式 CROSS JOIN 语法 -
从不在
FROM子句中使用逗号。 始终使用正确、明确的JOIN语法。 -
@GordonLinoff “永远不要在
FROM子句中使用逗号”听起来太强烈了。通过将它们放在FROM子句中的内部连接表是有意义的。唯一的问题是WHERE子句必须包含正确的连接条件。
标签: php mysql sql database join