Php 在mySQL上连接3个表

Php 在mySQL上连接3个表,php,mysql,sql,database,join,Php,Mysql,Sql,Database,Join,你好 我知道这个问题已经被问到了,但我很难实现我的问题 我想加入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) 我想连接三个表

你好

我知道这个问题已经被问到了,但我很难实现我的问题

我想加入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)
我想连接三个表,以便在一个表中显示订单头\u ID、数量和说明,其中订单完成为“是”。 我有以下SQL,它显示所有信息,但不加入它们

SELECT
    Order_Header.Order_Header_ID,
    Products.Description,
    Order_Line.Quantity
FROM Order_Header, Products, Order_Line
WHERE Order_Complete = 'yes'
其思想是,它只列出一次订单头ID,并且只列出一次相应的描述和数量


提前感谢

您当前的查询缺少连接条件。此外,最好使用显式连接语法。针对这两个问题,我们可以编写以下查询:

SELECT
    oh.Order_Header_ID,
    p.Description,
    ol.Quantity
FROM Order_Header oh
INNER JOIN Order_Line ol
    ON oh.Order_Header_ID = ol.Order_Header_ID
INNER JOIN Products p
    ON ol.Product_ID = p.Product_ID
WHERE
    oh.Order_Complete = 'yes'

“我有以下SQL,它显示所有信息,但不连接它们。”
FROM Order\u Header,Products,Order\u Line,其中Order\u Complete='yes'
实际上您在这里使用的是一种旧的隐式交叉连接语法在
FROM
子句中从不使用逗号。始终使用正确、明确的
JOIN
语法。@GordonLinoff“在
FROM
子句中永远不要使用逗号”听起来太强了。通过将表放入
FROM
子句进行内部连接是有意义的。唯一的问题是
WHERE
子句必须包含正确的连接条件。