2017-03-16 102 views
0

我必須將兩張表(bonds)與另外兩張表(orders_bid,orders_ask)連接起來。但是其他兩個表之間也必須有條件(customer_id必須相同)。MySQL加入三張表,其中兩個附加條件

bonds 
----------- 
id 
ticker 

...

orders_bid 
----------- 
id 
bonds_id 
customer_id 
price 

...

orders_ask 
----------- 
id 
bonds_id 
customer_id 
price 

我的做法是這樣的:

SELECT bonds.ticker, orders_bid.price, orders_ask.price FROM bonds 
LEFT JOIN orders_bid ON bonds.id=orders_bid.bonds_id 
LEFT JOIN orders_ask ON bonds.id=orders_ask.bonds_id 

但是這會導致結果行得到了混合不同的客戶,就像customer_id一樣在兩個連接的表格之間不受尊重。喜歡的東西...

WHERE orders_bid.customer_id=orders_aks.customer_id 

...另外需要,但它不能是WHERE語句,就像這樣一個外部聯接需要(一面可能是空的)。什麼是正確的方法?

回答

2

嘗試將它添加到JOIN條件。

SELECT bonds.ticker, orders_bid.price, orders_ask.price FROM bonds 
LEFT JOIN orders_bid 
ON  bonds.id = orders_bid.bonds_id 
LEFT JOIN orders_ask 
ON  bonds.id = orders_ask.bonds_id 
AND  orders_bid.customer_id = orders_ask.customer_id 
+0

我會盡力的。但是這不會影響第二次連接嗎? – JKB

+0

那些有customer_id字段的人 – McNets