筆記 SQL Join 的型別及實現方法

2021-10-02 22:07:51 字數 732 閱讀 6122

join 子句用於把來自兩個或多個表的行結合起來,基於這些表之間的共同字段。

select

*from t join t2

on t.id = t2.id;

(inner) join,內連線,只連線匹配的行。

left (outer) join,左外連線,返回左表的全部行和右表滿足 on 條件的行,如果左表的行在右表中沒有匹配,那麼留作 null.

right (outer) join,右外連線。

full (outer) join,全連線,mysql 中不支援。

hash join,選擇乙個 inner 表來構造雜湊表,然後對 outer 表的每一行資料都去這個雜湊表中查詢是否有匹配的資料。

index lookup join,每次取得 outer 表中的一批資料,使用索引在 inner 表中進行快速匹配。

從 outer 表中取一批資料,設為 b;

通過 join key 以及 b 中的資料構造 inner 表取值範圍,只讀取對應取值範圍的資料,設為 s;

對 b 中的每一行資料,與 s 中的每一條資料執行 join 操作並輸出結果;

重複步驟 1,2,3,直至遍歷完 outer 表中的所有資料。

sort merge join,將 join 的兩個表,首先根據連線屬性進行排序,然後進行一次掃瞄歸併, 進而就可以得出最後的結果。

一般在連線列為索引列的情況下可以考慮選擇使用 smj。

iOS的動畫效果型別及實現方法

實現ios漂亮的動畫效果主要有兩種方法,一種是uiview層面的,一種是使用catransition進行更低層次的控制,uiview beginanimations curl context nil 動畫開始 uiview setanimationduration 0.75 uiview setan...

iOS的動畫效果型別及實現方法

實現ios漂亮的動畫效果主要有兩種方法,一種是uiview層面的,一種是使用catransition進行更低層次的控制,uiview beginanimations curl context nil 動畫開始 uiview setanimationduration 0.75 uiview setan...

iOS的動畫效果型別及實現方法

實現ios漂亮的動畫效果主要有兩種方法,一種是uiview層面的,一種是使用catransition進行更低層次的控制,uiview beginanimations curl context nil 動畫開始 uiview setanimationduration 0.75 uiview setan...