2015-06-19 37 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