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查询语句实现
展开
 我来答
汐日南莘
推荐于2016-01-04 · TA获得超过1.4万个赞
知道大有可为答主
回答量:1.6万
采纳率:45%
帮助的人:7416万
展开全部
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重复的数据的列名
ireray5
推荐于2018-02-27 · TA获得超过396个赞
知道小有建树答主
回答量:557
采纳率:0%
帮助的人:357万
展开全部
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表没有
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hao_wen123
2011-09-24 · TA获得超过301个赞
知道答主
回答量:194
采纳率:0%
帮助的人:99万
展开全部
select a.* from tableA a where a.name not in (select b.name from where tableB b);
用子查询 简单 实用,不信你试试。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友0f37e23c0
2011-09-24 · TA获得超过1543个赞
知道大有可为答主
回答量:1070
采纳率:50%
帮助的人:1288万
展开全部
我来回答吧:
select * from tableA where name not in (select name from tableB)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
duomo6161
2011-09-24 · TA获得超过151个赞
知道答主
回答量:117
采纳率:0%
帮助的人:120万
展开全部
在oracle下最简单的方法是
select * from tableA
minus
select * from tableB
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式