sql中如何查询某一列的数据在另一个表中有没有?
比如:在这个表中的数据是1,3,5,而另一个表中是1,2,4,5,3不在第二个表中,怎样把它找出来?...
比如:在这个表中的数据是1,3,5,而另一个表中是1,2,4,5,3不在第二个表中,怎样把它找出来?
展开
4个回答
展开全部
假设表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
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表中相同的数据。
展开全部
假设表table1,列a,表table2,列b
select a from table1
where a not in
(
select b from table2
)
select a from table1
where a not in
(
select b from table2
)
追问
如何把查找出来的数据进行删除呢?
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
使用左链接吧!
select a.* from 表1 as a left join 表2 as b on a.id = b.id and b.id is null
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select t1.columnA from table1 t1 where not exists (select 0 from table2 t2 where t2.columnA = t1.columnA)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询