1. 程式人生 > 其它 >java-API-04 正則表示式

java-API-04 正則表示式

SQL——EXISTS用法

原文連結:http://www.manongjc.com/detail/26-vnlqolqounrrkqi.html

如下:
表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)。