sql not exists

簡單的理解就是 not exists = not in;exists= in

 

但這只是簡單的理解而已,其裏面的執行機制和細微處還是有一定的差別!

 

以下是從網絡上摘錄下的文章:

 

SQL裏的EXISTS與in、not exists與not in 效率比較和使用

在 MSSQL 中,插入(insert)一條記錄很簡單,但是一些特殊應用,在插入記錄前,需要檢查這條記錄是否已經存在,只有當記錄不存在時才執行插入操作,本文介紹的就是這個問題的解決方案。

INSERT INTO clients
(client_id, client_name, client_type)
SELECT supplier_id, supplier_name, 'advertising'
FROM suppliers
WHERE not exists (select * from clients
where clients.client_id = suppliers.supplier_id);

 

個人批註:not exists不存在,也就是說後面的括號中只要返回了數據那麼這個條件就不存在了,可以理解爲括號前的not

exists是一個左表達式 ,括號後的查詢是一個右表達式,只有當右表達式返回的也是not exists(即後面的查詢出來的結果是非空的)時,等式才成立。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章