mysql - 查找并显示第二列条目全部重复的所有唯一 ID

标签 mysql sql

我正在尝试查找 ID,对于该 ID,第二列中的所有条目都是重复的,并且存在于一个或多个其他 ID 下。这意味着我不仅仅是寻找是否有 (id2) => 2。

如果这是输入。

id   id2    
 1    44          
 1    44      
 1    44      
 2    44      
 2    44          
 2    44    
 2    44
 2    46    
 3    42      
 3    44          
 3    44          
 4    55    
 4    55          
 4    55          
 4    55          

输出应该是:

id   id2    
 1    44          
 1    44      
 1    44      

因为 id2 下的所有条目也存在于 id #2 中。 Id #3 不在输出中,因为只有部分条目与另一个 id 匹配,输出应该只给出所有 id2 条目与另一个条目匹配的条目,无论它有多少条目。

我正在使用 MySQL Workbench。

最佳答案

一种方法是计算每个 id2 的唯一 ID 数量。如果您仅对 id 值感到满意:

select t.id
from t join
     (select id2, count(distinct id) as numids
      from t
      group by id2
     ) t2
     on t.id2 = t2.id2
group by t.id
having min(numids) > 1;

我不确定获取原始值的值(value)是什么。获取它们的一个简单方法是将 group_concat(id2) 添加到外部 select

如果您的意思是 id 的所有 id2 值都相同并且与其他 id 一起出现,则添加 having count (distinct id2)having 子句。

关于mysql - 查找并显示第二列条目全部重复的所有唯一 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52777990/

相关文章:

sql - 简化的 SQL Min 语句

java - 缺少/不可用依赖项的服务

php - 如何查询表中具有时间戳字段的日期之间的数据?

mysql - 对具有小数位的 2 列中的值进行四舍五入

MySQL 关联子查询与引用外部查询的 WHERE 子句

mysql - 复杂的sql语句默认在事务中吗?

android - 无法连接到 Android 上的 MySQL

MySQL数据导入自增问题

php - 在php中连接到数据库并包含一次,但连接文件不在根目录中

sql - 是否可以在 sql 中使用字母数字序列生成器