准备数据如下:student 表
一、在学生表里,查询name相同且age不同的数据(只需将要比较的字段查询出来,name和age相同的会去重)
select a.name,a.age from student a join student b
on a.name = b.name and a.age <> b.age
group by a.name,a.age;
结果如下:
注意:在学生表中,张三 20 这个数据出现了多次,此sql语句是做了去重的
二、student 中name相同,且age不相同的每一条数据(可以将*替换为要查询出的的字段)
select a.* from student a where exists(select b.* from student b where a.name=b.name and a.age<>b.age);
结果如下:
若只查询部分需要的字段
select a.id, a.name from student