Php 在mySQL上连接3个表
你好 我知道这个问题已经被问到了,但我很难实现我的问题 我想加入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) 我想连接三个表
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
子句必须包含正确的连接条件。