2015-06-19 44 views
-5
SELECT DISTINCT c.fname, 
s.description FROM customer c INNER JOIN orders o ON c.customer_num = 
o.customer_num INNER JOIN items i ON o.order_num = i.order_num INNER 
JOIN stock s on s.stock_num = i.stock_num WHERE i.manu_code = 'ANZ'; 
+1

問題在哪裏,錯誤,表結構,示例數據? – Olli

+0

發佈您的表格架構 – Moppo

+1

您能否定義「不工作」的含義?什麼是輸入/你期待的結果是什麼/你實際得到的結果是什麼? –

回答

2

我很確信JOIN是在MySQL中「工作」。

(我可以在這裏補充一點,證明了它的工作原理的例子。)


編輯

如果你有「共同的」兩個表之間的兩列,並要在連接謂詞的相等比較中引用兩個列,只需在現有的ON子句中添加AND col2 = col2 ...

例如,要添加條件cust_id等於customerorders

SELECT DISTINCT c.fname 
     , s.description 
    FROM customer c 
    JOIN orders o 
     ON o.customer_num = c.customer_num 
    AND o.cust_id  = c.cust_id 
    -- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  add this line 
    JOIN items i 
     ON i.order_num = o.order_num 
    JOIN stock s 
     ON s.stock_num = i.stock_num 
    WHERE i.manu_code = 'ANZ'; 

如果您想對要麼customer_numcust_idcustomerorders之間加入之間

,您可以用 OR更換 AND。 (但是這是一個奇怪的模式,有兩個不同的列匹配;這不是規範模式。)

+0

嘿加入我的情況工作,但我有加入一個客戶和訂單表之間也很常見的領域。所以如何加入這個部分而不再使用表格的別名。 – prakhar