Ich versuche, eine LINKE JOIN-Abfrage mit einigen Bedingungen erstellen, aber es scheint seltsam zu handeln.LINKE JOIN-Bedingungen beeinflussen das Ergebnis nicht
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
Es hat das gleiche Ergebnis wie folgt aus:: Es wird nicht durch eine der ON-Klausel Bedingungen beaufschlagt werden
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
Ich bin sicher, es sollte ein anderes Ergebnis, denn wenn Ich setze diese Bedingungen in eine WHERE-Klausel statt einer ON-Klausel, es hat eine Wirkung.
Die Sache ist, ich benutze eine LINKE JOIN, weil ich keine Länder aus dem Ergebnis eliminieren möchte.
Können Sie eine kleine Auswahl von Daten mit den erwarteten Ergebnissen gehören? –