sql如何查询两个表不重复的记录

两个表
表1:tableA
name ,sex, birthdate
张三,男,2010-02-01
李四,男,2009-02-01
王五,女,2009-03-01

表2:tableB
name ,sex, birthdate
张三,男,2010-02-01
王五,女,2009-03-01

查询结果是tableA有,但在tableB没有的记录,如上表查询的结果是李四,男,2009-02-01

谢谢,请有sql查询语句实现

sql 查询不重复的记录 可以使用 having count group by 组合

先把不重复数据的id查询出来 通过count()计算 只有数目为1的才是不重复的数据
然后通过in选择出不重复记录的数据
例子:
统计出a表中name不重复的所有记录
select b.* from table b where b.id in(select a.id from table a group by a.name having count(a.id) <2)
//其中 name重复的数据的列名
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-02-27
select a.name,a.sex,a.birthdate,b.name
from tableA a left join tableB b
on a.name = b.name
where b.name is null --这句就是确保A表有但B表没有本回答被提问者和网友采纳
第2个回答  2011-09-24
select a.* from tableA a where a.name not in (select b.name from where tableB b);
用子查询 简单 实用,不信你试试。
第3个回答  2011-09-24
我来回答吧:
select * from tableA where name not in (select name from tableB)
第4个回答  2011-09-24
在oracle下最简单的方法是
select * from tableA
minus
select * from tableB
相似回答