Вот мой запрос до сих пор:Как добавить дополнительное условие к этому запросу (используя 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
мне нужно, чтобы он также проверить, что comment.flagged
= 0, когда он получает commentsCount
. Я попытался добавить дополнительные CASE
с в вызове SUM()
, но это привело к фатальной ошибке. Как я могу это достичь?
Спасибо!
Мне нужно получить одобренные комментарии и столбцы с пометкой = 0. Я попробовал ваш SQL и получил это сообщение об ошибке: «У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса, используемого рядом с 'WHEN' approved 'WHERE posts.status =? GROUP BY posts.title ORDER ' –
Не могли бы вы объяснить, что вы на самом деле пытаетесь достичь в своем вопросе, пожалуйста? На простом английском языке. Например, «Я пытаюсь получить 5 сообщений с наибольшим количеством комментариев, статус которых« одобрен », кроме как с отмеченной частью. –
За исключением COUNT (*), этот код работает нормально. Спасибо за помощь! –