Некоторое время назад у меня возник вопрос, как написать SQL-запрос с несколькими count()
, , и я получил здесь необходимый ответ .
Теперь, скажем, у меня точно такая же таблица
ID|group_name|username
----------------------
1 | A | user1
----------------------
2 | B | user2
----------------------
3 | C | user1
...
И точно такой же запрос:
select count(*) from TABLE
where username='user1'
having (sum(group_name ='A') > 0
and sum(group_name = 'B') > 0)
or sum(group_name = 'C') > 0")
Но теперь я хочу не считать, а перечислить все имена пользователей , которые соответствуют этому having
заявление.То есть перечислите все имена пользователей , которые находятся как в A, так и в B, или в группе C .
Пока я пробовал только заменить count(*)
на username
и добавить group by username
в запросе и в моем запросе, например так:
select username where username='user1' having (sum(group_name ='A') > 0 and sum(group_name = 'B') > 0) or sum(group_name = 'C') > 0") group by username
Но я получаю синтаксисошибка:
В вашем синтаксисе SQL есть ошибка;обратитесь к руководству, соответствующему вашей версии сервера MySQL, чтобы узнать правильный синтаксис для использования рядом с 'GROUP BY username
LIMIT 0, 25' в строке 1
Буду признателен за любую помощь.