我试图用一些条件创建一个左连接查询,但它似乎很奇怪。左连接条件不影响结果
SELECT c.country_id, c.country_name, IFNULL(MAX(b.bid_amount),0)
FROM countries AS c
LEFT JOIN items_bids AS b
ON c.country_id = b.bid_country_id
AND b.bid_removed = 0
LEFT JOIN advertisers AS a
ON a.advertiser_id = b.bid_advertiser_id
AND a.advertiser_balance > 0
AND a.advertiser_review = 0
LEFT JOIN items AS n
ON b.bid_item_id = n.item_id
AND n.item_approved = 1
AND n.item_deleted = 0
AND n.item_paused = 0
GROUP BY c.country_name
它具有相同的结果,因为这:它没有被任何的ON子句条件采取行动
SELECT c.country_id, c.country_name, IFNULL(MAX(b.bid_amount),0)
FROM countries AS c
LEFT JOIN items_bids AS b
ON c.country_id = b.bid_country_id
LEFT JOIN advertisers AS a
ON a.advertiser_id = b.bid_advertiser_id
LEFT JOIN items AS n
ON b.bid_item_id = n.item_id
GROUP BY c.country_name
我敢肯定,这应该是一个不同的结果,因为如果我把这些条件放在WHERE子句中,而不是ON子句,它确实有效。
问题是,我正在使用LEFT JOIN,因为我不想从结果中消除任何国家。
您可以包括与预期结果数据的小样本? –