Page 1 sur 1

Perdu sur une requete SQL

Publié : dim. 5 août 2012 12:29
par Zedoune
Salut à tous

Je suis vraiment une quiche en SQL, je suis bloqué sur une requête là :(

J'ai 2 tables, une table "articles" et une table "comments".

articles {
id (clé primaire)
state (> 0 ça veut dire qu'il est publié)
texte
}

comments {
id (clé primaire)
art (id de l'article sur lequel le commentaire doit être laissé)
state (> 0 ça veut dire qu'il est publié)
}


Ce que j'aimerais, c'est faire UNE seule requête qui me renvoie ça :

Pour chaque article validé, je veux son texte et le nombre de commentaires validés concernant cet article.

J'y arrive pas :(

Perdu sur une requete SQL

Publié : dim. 5 août 2012 13:24
par Zedoune
Et voilà.

On fait une sous-requete qui compte le nombre de commentaires par article et qui sont publiés. On fait un LEFT JOIN, car si un article n'a pas de commentaire, on fait QUAND MÊME la jointure, ce qui permet de récupérer toutes les données.


[cpp]SELECT nom AS ':nom',
articles.date AS ':date',
articles.id AS ':id',
articles.texte AS ':txt',
count_comments AS ':commentaires'
FROM articles
LEFT JOIN (select article AS id_article,
count(id) AS count_comments
FROM comments
WHERE STATE > 0
GROUP BY article) ON id_article = articles.id
WHERE articles.STATE > 0;[/cpp]