MySQL 选择一组列,在另一列中具有多个变体

标签 mysql

表格如下所示:

id group name
1  1     A
2  1     A
3  2     A
4  2     B
5  3     A

我想选择同一组中具有多个不同名称的行。结果应该如下:

id group name
3  2     A
4  2     B

知道如何实现这一目标吗?

最佳答案

您可以通过聚合获取组:

select group
from t
group by group
having min(name) <> max(name);

您可以使用 joininexists 获取原始行:

select t.*
from t
where t.group in (select group
                  from t
                  group by group
                  having min(name) <> max(name)
                 );

注意:group 对于列来说是一个糟糕的名称,因为它是 SQL 关键字和 MySQL 保留字。

关于MySQL 选择一组列,在另一列中具有多个变体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41177058/

相关文章:

mysql - Nodejs 中的 MySql 连接被拒绝访问

php - 使用变量更新表中的数字并更新变量

不使用 having 的 mysql 计数

MySQL连接超时?

mysql - 获取 3 天前整小时的结果

c++ - 如何使用 C++ 连接 mySQL 数据库

MySQL:为什么 SUM 的结果是查询给出 NULL?

Mysql utf8mb4 相等

php - 使用group by进行计数,返回行数

PHP MySQL 数据透视表代码