sql >> Database teknologi >  >> RDS >> Mysql

MySQL - Optælling af rækker og venstre join-problem

Jeg ville vælge noget som:

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

Flytning af AND til join-klausulen gør, at joinforbindelsen lykkes eller mislykkes, og det er afgørende, at de resulterende rækker holdes, hvor der ikke er nogen matchende række i den 'rigtige' tabel.

Hvis det var i WHERE , ville sammenligningerne med NULL (hvor der ikke er nogen kampagnekode) mislykkes og blive elimineret fra resultaterne.



  1. Hvordan kan jeg videregive gemte localStorage-webdata til et php-script?

  2. Postgres now() tidsstemplet ændres ikke, når scriptet virker

  3. indtastede formulardata gemmes ikke i mysql db?

  4. Opret en beregnet kolonne, der bruger data fra en anden tabel i SQL Server