SQL: Obtenir nombre de lignes retournées par une jointure gauche
J'ai deux tables, l'une appelée calendriers et l'autre appelé événements. Il peut y avoir plusieurs calendriers à la fois, et plusieurs événements dans un calendrier. Je veux sélectionner tous les de calendrier, obtenant également le nombre d'événements dans le calendrier.
C'est ce que j'ai :
SELECT C.*, COUNT(*) AS events FROM `calendars` AS C
LEFT JOIN `events` E ON C.ID=E.calendar
GROUP BY C.ID
Mais qui ne fonctionne pas. Les éléments sans les événements de toujours retourner 1. Des idées?
Vous devez vous connecter pour publier un commentaire.
Le problème, c'est que vous êtes entrain de compter les lignes, et un calendrier qui n'a pas les événements, ont encore une ligne de son calendrier.
Essayez ceci:
Vous devez utiliser
Sur les lignes sans correspond à la valeur de ce sera
NULL
etNULL
valeurs ne sont pas comptés.Comment sur:
essayez ceci: