好久沒用到這個指令了....

EXIST & NOT EXISTS

拿來做比對兩個資料表重複的資料的話可以使用

例如:
兩份資料,資料表A跟資料表B有重複的資料
在資料表A內有A+B的資料
要如何找到兩份不重複的資料


資料表A:
1 序號1 有資料
2 序號2 有資料
3 序號3 有資料
4 序號4 無資料
5 序號5 有資料

資料表B:
3 序號3 有資料
5 序號5 有資料

SELECT *
FROM 資料表A
where 檢查碼 = '有資料' AND NOT EXISTS
(
select * from 資料表B WHERE 資料表A.序號 = 資料表B.序號
)

NOT EXISTS 會找 資料表A內檢查碼是有資料的欄位,沒有存在的資料表B資料

所以得到的會是

1 序號1 有資料
2 序號2 有資料

-------

相反的若使用EXISTS語法,就會變成...

SELECT *
FROM 資料表A
where 檢查碼 = '有資料' AND EXISTS
(
select * from 資料表B WHERE 資料表A.序號 = 資料表B.序號
)

找出資料表A檢查碼是有資料的欄位裡面,跟資料表B相同的資料..

得到就是

3 序號3 有資料
5 序號5 有資料



欸..這例子好像很爛...
反正就是這樣,試試看就知道囉~

arrow
arrow
    全站熱搜

    貓小佑 發表在 痞客邦 留言(1) 人氣()