如何连接三个表-MySQL



在将其标记为重复问题之前先阅读。

有三个表-invoice_order、invoice_order_item和库存

这是的结构

发票订单

order_id | user_id | customer_name | order_date | order_number
1        | 1       | xyz           | y-m-d      | 0000001

invoice_order_item

这里order_id是外键,order_item_name存储stock_id

order_item_id | order_id | order_item_name | order_item_quantity | order_item_price
1             | 1        | 2               | 5                   | 1000

库存

stock_id | item_type   | item_name 
2        | goods       | Mobile           

我正试着加入这三张桌子。这就是我迄今为止取得的成就

$query = "select * from invoice_order inner join invoice_order_item on invoice_order.order_id = invoice_order_item.order_id inner join stock on stock_id = invoice_order_item.order_item_name where invoice_order.order_id = {$order_id}";

上面的查询没有返回order_item_name。它输出stock_id而不是项名称。我需要输出商品的名称,而不是库存id。

我知道代码容易受到SQL注入的攻击。你可以忽略它,这只是为了测试

SELECT
Stock.item_name
FROM invoice_order
JOIN invoice_order_item
ON   invoice_order.order_id = invoice_order_item.order_id
JOIN Stock
ON invoice_order_item.order_item_name = Stock.stock_id

参见参考

最新更新