sql语句 判断表数据是否存在另一个表中

表A如下
字段 id
数据 aaa
 bbb
 ccc
 ddd

表B如下
字段 id
数据 aaa
 bbb

查询显示表a如下, 并多显示一列flag (如果a中的数据b中有则显示1, 没有显示0)
id flag
aaa 1
bbb 1
ccc 0
ddd 0

工具/材料:Management Studio。

1、首先在桌面上,点击“Management Studio”图标。

2、其次在窗口中,点击“新建查询”按钮。

3、接着在窗口中,输入判断表数据是否存在另一个表中的SQL语句“select test1.no from test1 where EXISTS(select * from test2 where test1.no=test1.no)”。

4、再者在窗口中,点击“执行”按钮。

5、最后在窗口中,显示是否存在另一个表中的表数据。

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-11-26

只需判断一下即可,根据你的题目意思应该是a表的id和b表的id相关联。

select *, case when (select count(*) from b where id = a.id)>0 then 1 else 0 end as flag from a

如果你是想a表和b表的字段和id这两列都一样,才将flag显示为1的话,用下面的查询:

select *, case when (select count(*) from b where id = a.id and 字段 = a.字段)>0 then 1 else 0 end as flag from a

本回答被提问者采纳
第2个回答  2014-07-30
select a.id,b.id,case when a.id=b.id then 1 else 0 end as falg from Af a left join B b on a.id=b.id

ORACLE写法追问

查出来只显示flag是1的
0的没有出来..

追答

我的都可以

第3个回答  2014-07-30
看上去就头痛追问

- - 就是判断表中数据是否存在另一个表,并显示出来是或否的结果..

相似回答