Having count (MySQL)

При применении в запросе агрегирующих функций (COUNT(), SUM(), AVG() и др.), чтобы выполнить условие придется использовать параметр HAVING (WHERE не получится использовать).

Задача

Например есть две таблицы «Новости» и «Комментарии» (таблицы создавались в статье Количество записей в дочерней таблице) — необходимо вывести список новостей, у которых больше четырех комментариев.

Запрос

SELECT n.`id`, n.`date`, n.`text`, COUNT(c.`id`) as cnt FROM news n , comments c WHERE c.`id_news`=n.`id` GROUP BY n.`id` HAVING COUNT(c.`id`)>3;

Результат

iddatetextCOUNT(c.`id`)
12010-12-16Опубликована первая статья4
52011-01-08Открыта страница лица expange4

Категории

СУБДMySQL

Комментарии