SQL——(NOT) EXISTS 用法
阿新 • • 發佈:2021-11-17
SQL——EXISTS用法
如下:
表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
原因可以按照如下分析
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 無值返回(假),所以沒有資料。
NOT EXISTS 就是反過來
SELECT ID,NAME FROM A WHERE NOT EXIST (SELECT * FROM B WHERE A.ID=B.AID)
執行結果為
3 A3
重點:1.內表SELECT什麼無所謂;2.內表和外表要建立起聯絡(此處例子的聯絡即是指A/外表的ID和B/內表的AID)。
///縱有疾風起,人生不言棄///