Mysql, как использовать значение COUNT строк из объединенной таблицы в выражении WHERE? - PullRequest
1 голос
/ 23 октября 2010

Вот так:

COUNT(i.t_1) AS total_images
WHERE total_images > 2

Выдает ошибку:

Unknown column "total_images" in where clause

Если этот путь:

WHERE COUNT(i.t_1) > 2

Выдает ошибку:

Invalid use of group function

Как это сделать правильно?

Если нужно, я опубликую полное заявление.

Значение этого запроса, чтобы выбрать 1 объявление с наибольшим количеством фотографий внутри (фотографии)) таблица.

Спасибо;)

Ответы [ 2 ]

1 голос
/ 23 октября 2010

Предложение WHERE можно использовать только для фильтрации строк в таблице / производной таблице построчно. Для фильтрации по результатам агрегирования необходимо использовать HAVING вместо WHERE:

HAVING COUNT(i.t_1) > 2
0 голосов
/ 23 октября 2010

Если вы действительно ищете "1 объявление с наибольшим количеством фотографий", вам может понадобиться что-то вроде:

select i.t_1,count(*) n ... group by i.t_1 order by n desc limit 1

...