1. 程式人生 > >子查詢和關聯查詢的區別

子查詢和關聯查詢的區別

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

1,表關聯的效率要高於子查詢,因為子查詢走的是笛卡爾積
2,表關聯可能有多條記錄,子查詢只有一條記錄,如果需要唯一的列,最好走子查詢

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

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