Bonjour à vous.
Tout d'abord désolé pour ce titre peu explicite mais je ne vois pas trop comment expliquer la chose sans présenter un cas concret.
Je suis en train de suivre une petite formation sur le langage SQL pour un peu sortir des sentiers battus et voir des cas un peu différent de ce que l'on a l'habitude faire à l'aide des langages serveurs tels que PHP, Python ou Ruby.
Voici mon cas. Je dispose d'une table articles, d'une table utilisateurs, d'une table catégorie, d'une table commentaires et d'une table categorie_article qui regroupe les articles par catégories (dans le cas ou un article a plusieurs catégories).
J'aimerais, dans un premier temps, récupérer la liste des articles ordonnés par nom avec leur auteur respectifs et le nombre de commentaires pour chaque article. Une méthode simple et logique serait de créer un champ total_commentaires dans la table article et de l'incrémenter à chaque fois qu'on rajouter un article dans la base de donnée (et inverssement quand on le supprime). La difficulté justement est de ne pas utiliser ce champ et de tout faire passer dans une seule et unique requête.
Actuellement je suis bloqué à :
SELECT
Article.id , Article.titre, Article.resume, DATE_FORMAT(Article.date_publication, '%d/%m%Y') as date_formatee,
Utilisateur.id as user_id, Utilisateur.pseudo
FROM Article
LEFT JOIN Utilisateur
ON Utilisateur.id = Article.auteur_id
ORDER BY Article.date_publication DESC
qui me retourne la liste des derniers articles triés par ordre décroissant. Et après plusieurs tentatives, je n'arrive pas à récupérer le total de commentaires. Pourriez vous m'aguiller dans la bonne direction avec une fonction, une méthode ou simplement un article ? Le but étant d'apprendre :)
Merci à vous :)