exisis用法
什么意思啊?网上说的exisis()里面得到值就返回true,返回true又怎样?selcet * from users where exisis(select * from users)等于 select * from users where true? 然后就执行外查询?flase就不执行了?好像也执行了外查询呀 只不过结果都是null ! 求大神解惑,小白愚昧,求大神最好带例子
什么意思啊?网上说的exisis()里面得到值就返回true,返回true又怎样?selcet * from users where exisis(select * from users)等于 select * from users where true? 然后就执行外查询?flase就不执行了?好像也执行了外查询呀 只不过结果都是null ! 求大神解惑,小白愚昧,求大神最好带例子
2017-09-19
首先,纠正一下这个exisis应该是exists吧。
用法:exists (sql 返回结果集为真)
用途:例:
表A
ID NAME
1 A1
2 A2
3 A3
表B
ID AID NAME
1 1 B1
2 2 B2
3 2 B3
表A和表B是1对多的关系 A.ID => B.AID
SELECT ID,NAME FROM A WHERE EXISTS (SELECT * FROM B WHERE A.ID=B.AID)
执行结果为
1 A1
2 A2
(Tips:此命令结合sql查询语句使用,可以从查询符合特定条件的结果)
原因可以按照如下分析
SELECT ID,NAME FROM A WHERE EXISTS (SELECT * FROM B WHERE B.AID=1)
--->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无值返回真所以没有数据
举报