2017-05-31 114 views
-1

如何在這裏加入這3個表。如何加入這些表MYSQL

enter image description here

我想要得到的產品名稱。

SELECT order_detail.productid 
FROM order_detail 
INNER JOIN orders 
    ON orders.id_order = order_detail.orderid 
INNER JOIN products 
ON orders.id_order=products.id_product 

sql查詢返回零列..我做錯了什麼?

回答

1

在您的查詢中,您將加入您的orders.id_order=products.id_product,但您似乎需要加入order_detail.productid=products.id_product。所以我建議將您的查詢改爲:

SELECT 
    od.productid, 
    p.name_product -- added name column 
FROM order_detail od 
INNER JOIN orders o 
    ON o.id_order = od.orderid 
INNER JOIN products p 
ON od.productid=p.id_product 

您會注意到我添加了一些表別名以使代碼更加簡潔。此外,如果您不需要在最終結果中使用orders表,那麼您可以放棄加入:

SELECT 
    od.productid, 
    p.name_product 
FROM order_detail od 
INNER JOIN products p 
ON od.productid=p.id_product 
+0

您確定嗎?因爲我得到的結果,但不是正確的一個 –

+0

@GoranAhibit你會得到什麼結果?你想要的結果是什麼?您可能需要編輯您的問題以包含一些示例數據和最終期望的結果。 – ollie

+0

@GoranAhibit:你能分享你所期望的輸出和輸出嗎?在任何情況下,將'int'連接到'varchar'而不用強制轉換(根據你的圖)並不是一個好主意,必然會產生不合理的結果。 –