MySQL连接三个表,其中两个带有附加条件

MySQL连接三个表,其中两个带有附加条件,mysql,join,Mysql,Join,我必须将一个表(债券)与另外两个表(订单竞价、订单竞价)左键连接。但其他两个表之间也必须有一个条件(customer_id必须相同) 我的做法如下: 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必须相同)

我的做法如下:

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
但这会导致结果行在不同的客户上混合,因为两个联接表之间不尊重客户id。类似于

WHERE orders_bid.customer_id=orders_aks.customer_id

…是另外需要的,但它不能是WHERE语句,因为需要外部联接之类的内容(一侧可能为空)。正确的方法是什么?

尝试将其添加到联接条件中

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

尝试将其添加到联接条件中

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

我试试看。但这不会只影响第二次加入吗?那些有客户id的人我会试试。但这不会只影响第二次加入吗?那些有customer\u id字段的加入
WHERE orders_bid.customer_id=orders_aks.customer_id
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