Mysql Выбрать записи с минимальным count()

Royal Flash

-=MaestrO=-
Здравствуйте.

Ни как не могу придумать, как составить нужный мне запрос, хотя уверен, что его таки можно написать. Есть БД, например:

user_id message
1 asdasd
1 sfgfgdfg
2 safsadff
3 dfgsdfgfdgdf
3 asdfasdfsdfg
3 sdfgfdgg
4 sdfsdf

Из этой БД нужно выбрать только тех user_id, которые встречаются меньшее кол-во раз, т.е. это должны быть user_id 2 и 4.

Подсчитать, сколько вхождений каждого пользователя не проблема:
PHP:
SELECT user_id, COUNT(*) FROM table GROUP BY user_id
А вот как выбрать за один запрос только тех, кто встречается минимальное кол-во раз?
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
SELECT user_id, COUNT(*) as x FROM table GROUP BY user_id HAVING x = 1
 

Royal Flash

-=MaestrO=-
Спасибо, но пользователей, с минимальным кол-вом сообщений может быть менее или более одного. Т.е. нужно сначала узнать это минимальное кол-во, а уже потом подставлять его в HAVING в одном запросе.
 

Royal Flash

-=MaestrO=-
ОГРОМНОЕ СПАСИБО всем, кто принял участие в решении моего вопроса. Вариант от WMix - это и есть построение нужного мне запроса в один запрос.
 

fixxxer

К.О.
Партнер клуба
select group_concat(id) from (select id, count(*) c from tableName group by id) tmp group by c order by c limit 1;

:D

так кстати чутка оптимальнее, похоже, хоть и изврат
 
Сверху