子查詢和關聯查詢的區別

2021-08-21 14:29:50 字數 361 閱讀 1890

子查詢就是查詢中又巢狀的查詢,表連線都可以用子查詢,但不是所有子查詢都能用表連線替換,子查詢比較靈活,方便,形式多樣,適合用於作為查詢的篩選條件,而表連線更適合與檢視多表的資料。
子查詢不一定需要兩個表有關聯字段,而連線查詢必須有欄位關聯(所謂的主外來鍵關係)
1,表關聯的效率要高於子查詢,因為子查詢走的是笛卡爾積

2,表關聯可能有多條記錄,子查詢只有一條記錄,如果需要唯一的列,最好走子查詢

對於資料量多的肯定是用連線查詢快些,原因:因為子查詢會多次遍歷所有的資料(視你的子查詢的層次而定),而連線查詢只會遍歷一次。

但是資料量少的話也就無所謂是連線查詢還是子查詢,視自己的習慣而定。一般情況下還是用子查詢來的好,容易控制。

子查詢和關聯查詢 效率

msdn對子查詢的定義是這樣的 可以將乙個查詢的結果用作另乙個查詢的輸入。可以將子查詢的結果用作使用 in 函式 exists 運算子或 from 子句的語句。一條好的值得稱讚的規則是盡量用連線代替所有的子查詢。優化器有時可以自動將子查詢 扁平化 並且用常規或外連線代替。但那樣也不總是有效。明確的連...

27 關聯查詢 聯合查詢 子查詢

select 欄位名 from 表1,表2 on 關聯條件 顯示前3條 limit 0,3 找出比部門平均工資高的員工編號,基本工資 select t employee.eid,basic salary from t salary inner join t employee inner join s...

子查詢快 還是關聯查詢快 SQL關聯子查詢

關聯子查詢,根本含義就是對於外部查詢返回的每一行資料,內部查詢都要執行一次,就像python裡邊說的遍歷一樣。遍歷後對符合條件的記錄進行操作。題目 查詢每門課程的成績第2名到第3名的學生資訊及該課程成績 selectwhere跟的條件的含義 查詢同乙個課程sc表的成績小於sc1表的總人數。子查詢中 ...