2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > exist和not exist用法

exist和not exist用法

时间:2022-03-19 09:06:18

相关推荐

exist和not exist用法

转载自:/johnsmith/archive//09/07/2169407.html

参考:/view/577f4d49cf84b9d528ea7a6f.html //这个讲的很详细

引用自:http://chenling1018./blog/static/1480254112944944177/

--exists (sql 返回结果集,为真) --not exists (sql 不返回结果集,为真) --如下:

--表A ID NAME1A12A23A3

-- 表B

ID AID NAME

11B1

22B2

32B3

-- 表A和表B是1对多的关系 A.ID => B.AID

SELECT ID,NAME FROM A WHERE EXIST ( SELECT * FROM B WHERE A.ID = B.AID)

-- 执行结果为

1A1

2A2

-- 原因可以按照如下分析

SELECT ID,NAME FROM A WHERE EXISTS ( SELECT * FROM B WHERE B.AID =)

-- -> SELECT * FROM B WHERE B.AID=1有值,返回真,所以有数据

SELECT ID,NAME FROM A WHERE EXISTS ( SELECT * FROM B WHERE B.AID =2)

-- -> SELECT * FROM B WHERE B.AID=2有值,返回真,所以有数据

SELECT ID,NAME FROM A WHERE EXISTS ( SELECT * FROM B WHERE B.AID =3)

-- -> SELECT * FROM B WHERE B.AID=3无值,返回假,所以没有数据

--NOT EXISTS 就是反过来 SELECT ID,NAME FROM A WHERENOT EXIST (SELECT * FROM B WHERE A.ID=B.AID) --执行结果为3A3

===========================================================================

--EXISTS = IN,意思相同不过语法上有点点区别,好像使用IN效率要差点,应该是不会执行索引的原因 SELECT ID,NAME FROM A WHEREID IN (SELECT AID FROM B)

--NOT EXISTS = NOT IN ,意思相同不过语法上有点点区别 SELECT ID,NAME FROM A WHEREIDNOT IN (SELECT AID FROM B)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。