MySQL - Comptage des lignes et problème de jointure gauche
J'ai 2 tables, des campagnes et des campaign_codes:
campagnes: id, partner_id, le statut
campaign_codes: id, code, statut
Je veux obtenir un décompte de tous les campaign_codes pour toutes les campagnes OÙ campaign_codes.le statut est égal à 0 OU où il n'y a pas campaign_codes enregistrements pour une campagne.
J'ai le SQL suivant, mais bien sûr l'instruction where élimine ceux des campagnes qui n'ont pas d'enregistrements correspondants dans campaign_codes ( je veux que ceux des campagnes avec zéro campaign_codes)
SELECT
c.id AS campaign_id,
COUNT(cc.id) AS code_count
FROM
campaigns c
LEFT JOIN campaign_codes cc on cc.campaign_id = c.id
WHERE c.partner_id = 4
AND cc.status = 0
GROUP BY c.id
source d'informationauteur k00k
Vous devez vous connecter pour publier un commentaire.
Je préfère quelque chose comme:
Le déplacement de la
AND
à la clause de jointure fait la jointure de réussir ou d'échouer, surtout en gardant résultant lignes où il n'y a pas de ligne correspondante dans le "droit" de table.Si c'était dans le
WHERE
les comparaisons à NULL (où il n'y a pas de campaign_code) serait un échec, et être éliminé par les résultats.