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