Oracle [not] exists 子查詢裡不存在與外層關聯的條件,最終結果有無資料的現象
前言:
最近看到一個sql ,not exist 和 exists 子查詢裡不存在與外層關聯的條件;
下文實驗結論為 不加關聯條件 有無資料的現象。
實驗結論如下:
not exists 子查詢沒資料,最終結果行數等於外層結果行數not exists 子查詢有資料,最終結果沒資料exists 子查詢有資料,最終結果行數等於外層結果行數exists 子查詢沒資料,最終結果沒資料
測試SQL:
SELECT 1 FROM dual where [not] exists (select 1 from dual /*minus select 1 from dual*/);
-- 如上的情況類似if判斷:
-- 如上的情況類似if判斷:
-- 例如:當not exists 的整個子查詢結果有資料,update/delete 空操作,當子查詢無資料,update/delete 進行有值操作
-- 可能if 判斷方式最佳化於原sql(原sql可能存在filter執行計劃)... 具體根據業務判斷。
-- 當您碰到這樣情況,建議最好和開發人員確認下是否存在馬虎忘記寫關聯條件情況;
-- 若就是想判斷再操作update/delete,個人建議用if...避免子查詢於外層迴圈操作.
【源於本人筆記】 若有書寫錯誤,表達錯誤,請指正...
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28602568/viewspace-1666675/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 在關聯子查詢中in與exists的區別
- 一個NOT EXISTS含有OR條件子查詢的優化優化
- oracle date資料的條件查詢Oracle
- [not] in/exists 與 帶TOP的子查詢
- 20240719資料庫關聯查詢、條件查詢資料庫
- ORACLE 查詢條件出現關鍵字:&Oracle
- exists與in子查詢優化優化
- 子查詢中的IN與EXISTS的區別(轉)
- 9i下含有connect by會導致以關聯欄位為條件做查詢時,結果不正確的現象
- 區分關聯子查詢和非關聯子查詢
- exist-in和關聯子查詢-非關聯子查詢
- 異構資料庫的關聯查詢 oracle hsodbc 關聯mysql資料庫OracleMySql
- 關聯子查詢的用處
- MySQL exists關聯子查詢SQL效能及其低下最佳化之等值子查詢轉換MySql
- 使用mybatis example 和 java 8的特性來實現多表關聯且帶有查詢條件的查詢MyBatisJava
- 將主查詢條件寫到子查詢裡執行效果會怎樣?
- 34. 過濾條件、多表查詢、子查詢
- MySQL聯結查詢和子查詢MySql
- 關聯子查詢 Correlated Subqueries
- mysql帶AND關鍵字的多條件查詢MySql
- Transformation之Non-correlated(無關聯子查詢)=any的transform【五】ORM
- DataSet多表關聯實現本地資料複雜的查詢
- 【SQL】使用分析函式與關聯子查詢的比較SQL函式
- 關聯查詢子查詢效率簡單比照
- 關聯查詢完,寫個 select 把條件放在外面,方便條件處理
- 查詢前10條資料oracleOracle
- Laravel 關聯查詢限制條數和分組查詢顯示為零的結果Laravel
- 等於NULL的查詢條件導致查詢結果不正確Null
- sql語法相關子查詢與非相關子查詢SQL
- Django查詢特定條件的資料並插入其他表格模型Django模型
- 根據查詢條件批量修改表資料
- MongoDB之資料查詢(where條件過濾)MongoDB
- Oracle中實現查詢結果按照in中條件排序 InStr函式Oracle排序函式
- PHP查詢資料庫中滿足條件的記錄條數(二種實現方法)PHP資料庫
- 查詢作為條件的SQLSQL
- MongoDB查詢條件MongoDB
- MongoDB條件查詢MongoDB
- mysql條件查詢MySql