sql如何查询两个表不重复的记录
两个表表1:tableAname,sex,birthdate张三,男,2010-02-01李四,男,2009-02-01王五,女,2009-03-01表2:tableBn...
两个表
表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查询语句实现 展开
表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重复的数据的列名
先把不重复数据的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重复的数据的列名
展开全部
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表没有
from tableA a left join tableB b
on a.name = b.name
where b.name is null --这句就是确保A表有但B表没有
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select a.* from tableA a where a.name not in (select b.name from where tableB b);
用子查询 简单 实用,不信你试试。
用子查询 简单 实用,不信你试试。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我来回答吧:
select * from tableA where name not in (select name from tableB)
select * from tableA where name not in (select name from tableB)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在oracle下最简单的方法是
select * from tableA
minus
select * from tableB
select * from tableA
minus
select * from tableB
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询