前段时间我有一个问题如何编写一个带有多个的 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 服务器版本相对应的手册,以
username在第 1 行的 'GROUP BY LIMIT 0, 25'附近使用正确的语法
将不胜感激任何帮助。