sql中如何查询某一列的数据在另一个表中有没有?

比如:在这个表中的数据是1,3,5,而另一个表中是1,2,4,5,3不在第二个表中,怎样把它找出来?... 比如:在这个表中的数据是1,3,5,而另一个表中是1,2,4,5,3不在第二个表中,怎样把它找出来? 展开
 我来答
lizhenyi305
2013-11-29 · 超过23用户采纳过TA的回答
知道答主
回答量:59
采纳率:0%
帮助的人:53.5万
展开全部
假设表TABLE1的A列为1,3,5 表TABLE2的B列为1,2,4,5
NOT EXISTS写法:
SELECT T1.A
FROM TABLE1 T1
WHERE NOT EXISTS(SELECT 1 FROM TABLE2 T2
WHERE T1.A = T2.B)

NOT IN写法:
SELECT T1.A
FROM TABLE1 T1
WHERE T1.A NOT IN(SELECT T2.B FROM TABLE2 T2)
小表建议使用NOT IN
追问
查找出来后怎么把这部分数据进行删除呢?
追答
要删除,把SELECT T1.A 改为DELETE即可删除T1表中对应与B表中相同的数据。
chen_hongyang
推荐于2016-06-21 · TA获得超过5447个赞
知道大有可为答主
回答量:2790
采纳率:91%
帮助的人:860万
展开全部
假设表table1,列a,表table2,列b
select a from table1
where a not in
(
select b from table2
)
追问
如何把查找出来的数据进行删除呢?
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
rkc009
2013-11-29 · TA获得超过1499个赞
知道大有可为答主
回答量:2098
采纳率:60%
帮助的人:1691万
展开全部
使用左链接吧!

select a.* from 表1 as a left join 表2 as b on a.id = b.id and b.id is null
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lzh3452
2013-11-29 · TA获得超过1044个赞
知道小有建树答主
回答量:1168
采纳率:100%
帮助的人:857万
展开全部
select t1.columnA from table1 t1 where not exists (select 0 from table2 t2 where t2.columnA = t1.columnA)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式