Bonjour,
Encore une fois, je me frotte aux LEFT OUTER JOIN et GROUP BY, et j'ai encore des problèmes de compréhension...
Dans une première requête, je recherche le nombre de photos présentes dans un album (en vérifiant que l'utilisateur qui a posté existe encore):
Ici aucun problème. Maintenant je souhaite récupérer en plus le nombre de commentaires, issus de la table comments:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 SELECT pa.name AS nom_album, COUNT(*) AS total_photos FROM photo_albums pa INNER JOIN users u ON u.id = pa.link_user_id LEFT OUTER JOIN photo_images p ON p.link_id_photo_album = pa.id GROUP BY p.link_id_photo_album ORDER BY pa.date_added LIMIT 0 , 3
Mais là, il me sort n'importe quoi (je ne sais même pas quelles valeurs il prend). Je sais que ça doit provenir du GROUP BY, ou du ON, mais je me perds...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 SELECT pa.name AS nom_album, COUNT( pa.id ) AS total_photos, COUNT( c.id ) AS total_comments FROM photo_albums pa INNER JOIN users u ON u.id = pa.link_user_id LEFT OUTER JOIN photo_images p ON p.link_id_photo_album = pa.id LEFT OUTER JOIN comments c ON c.link_id_item = p.id GROUP BY p.link_id_photo_album ORDER BY pa.date_added
Comment faire ?
Merci
Partager