MySql 列出总和 > 0 的所有字段

标签 mysql sql laravel-5

前段时间我有一个问题如何用多个count()写一个sql查询,and got needed answer here .

现在假设我有完全相同的表

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

但是我得到语法错误:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'GROUP BY username LIMIT 0, 25' at line 1

非常感谢任何形式的帮助。

最佳答案

要列出满足您条件的用户名,您可以将查询写为

select username
from table
group by username
having (
    sum(group_name ='A') > 0 and sum(group_name = 'B') > 0
) or sum(group_name = 'C') > 0

关于MySql 列出总和 > 0 的所有字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50482129/

相关文章:

mysql - 帮助构建使用内连接的 sql 查询

php - 如何在 PHP 应用程序中打印 mysql 中的行号

mysql - 只有一个 mySQL 数据库失去连接

sql - 进行多个左外部排除连接的最佳方法

php - Laravel 5 的功能

mysql - 内连接返回重复的注册表

mysql - 使用 SQL 更新数据库中的数据

mysql - 使用 MYSQL 查询以 if 条件连接 2 个表

php - 如何在 Laravel 中每 5 分钟对某个 URL 进行一次 GET

javascript - 使用动态创建的输入字段插入多条记录