我試圖用一些條件創建一個左連接查詢,但它似乎很奇怪。左連接條件不影響結果
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,因爲我不想從結果中消除任何國家。
您可以包括與預期結果數據的小樣本? –