Voilà ma requête à ce jour:Comment puis-je ajouter une condition supplémentaire à cette requête (en utilisant CASE)?
SELECT
posts.title
, SUM(CASE comments.status WHEN 'approved' THEN 1 END) AS commentsCount
FROM posts
INNER JOIN comments
ON comments.postID = posts.id
WHERE
posts.status = ?
GROUP BY
posts.title
ORDER BY
commentsCount DESC
LIMIT 5
je dois avoir vérifier que comment.flagged
= 0 quand il est commentsCount
. J'ai essayé d'ajouter CASE
supplémentaires dans l'appel SUM()
, mais cela a entraîné une erreur fatale. Comment puis-je atteindre cet objectif?
Merci!
J'ai besoin de récupérer les commentaires qui sont approuvés et leur colonne marquée = 0. J'ai essayé votre SQL, et j'ai reçu ce message d'erreur: 'Vous avez une erreur dans votre syntaxe SQL; consultez le manuel qui correspond à votre version du serveur MySQL pour la bonne syntaxe à utiliser près de 'WHEN' approuvé 'WHERE posts.status =? GROUP BY posts.title ORDER ' –
Pourriez-vous expliquer ce que vous essayez de réaliser dans votre question, s'il vous plaît? En anglais simple. Par exemple "J'essaie d'obtenir les 5 posts avec le plus de commentaires dont le statut est 'approuvé'" sauf avec la partie marquée. –
À l'exception du COUNT (*), ce code fonctionne correctement. Merci pour l'aide! –