有關SQL相關子查詢的問題

2022-10-30 21:50:11 字數 390 閱讀 3641

1樓:僑思真

給你說一下有distinct和無distinct的執行過程吧

有distinct的時候,是select distinct b_id from b where c_id='3' 這句去表裡讀id,最後取出不重複的,然後select count(distinct a_id) from a where b_id in 這個查詢去剛才查的結果裡迴圈取數

但是如果=3的那個不用distinct的話,也是取出一堆數來,但是有很多應該是重複的,前一句還是要到這個結果集中去迴圈,這個主要看資料量吧

如果你後邊括號裡的資料量有幾萬,那就要迴圈幾萬次,這個時候後邊用distinct的話比較合適

如果後邊不加distinct,而資料量幾百幾千條,迴圈也就是幾百幾千次

相關子查詢與不相關子查詢有什麼區別?舉例說明

一 處理次數不同 1 相關子查詢 相關子查詢被多次處理,需要重複求值以供外部查詢使用。二 依賴不同 1 相關子查詢 相關子查詢中的查詢條件取決於外部查詢中的值。三 效率不同 1 相關子查詢 相關子查詢可以巢狀在多個層中,但巢狀層越多,效率越低。擴充套件資料 非相關子查詢的執行不依賴與外部的查詢。執行...

SQL查詢問題,SQL查詢問題

你那個 test 表有 設 主鍵 欄位沒有如果沒有 我就不會搞了 因為如果沒設主鍵 select from test 的顯示順序是 按記錄的插入時間 排的 先插入的排在前面 如果設了主鍵 是按主鍵欄位 升序來 排的 如果有設主鍵 假設為 tid 試下這條語句 select from test sel...

sql合併查詢的問題,sql 合併查詢的問題

這個求出的就是笛卡爾積,所有項相乘。連線查詢時,需要條件的,會讓相同的元組連在一起。比如a表 1,a2,b 3,ab表 a,fb,f c,e這時select from a,b結果就是1,a,a,f 3,a,a,f 2,b,b,f 連線2個表,需要條件!如果沒有任何條件那就是笛卡爾積的形式了,你要連線...