sql >> Database >  >> RDS >> Mysql

MySQL - Het tellen van rijen en left join-probleem

Ik zou kiezen voor iets als:

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
AND cc.status = 0 -- Having this clause in the WHERE, effectively makes this an INNER JOIN
WHERE c.partner_id = 4
GROUP BY c.id

De AND . verplaatsen aan de join-clausule zorgt ervoor dat de join slaagt of mislukt, waarbij de resulterende rijen cruciaal blijven waar er geen overeenkomende rij is in de 'juiste' tabel.

Als het in de WHERE , zouden de vergelijkingen met NULL (waar er geen campagnecode is) mislukken en uit de resultaten worden verwijderd.



  1. Kolomnaam ophalen in plaats van kolomwaarde

  2. Hoe alleen tijd op te slaan; geen datum en tijd?

  3. Leer hoe u PK maakt van Sequence Trigger in SQL Developer

  4. Twee query's mysql in één object json