users 表中有 两个字段 id 和 name
表数据大概如下:
id name
1 AAA
2 BBB
3 CCC
4 AAA
请写查询语句查询出name字段中重复的值。
这个需要用到子查询 先查询出重复字段的值,根据分组统计name字段相同值的 数据条数大于1的就是重复的数据
即 select name from users group by name having count(*) > 1
查到重复的数据 指的是得到了重复数据的 name值 然后再把这个重复值作为条件去查询
select * from users as a where (a.name) in (select name from users group by name having count(*) > 1);
注意:此时的主查询语句的表名需要取别名 因为子查询用的表名和主查询的表名需要区分