聯合/連接查詢

  • 聯合查詢

概念:將多個查詢的結果合併在一起,字段數不變,多個查詢的記錄數合併。

基本語法:select 語句 Union [distinct/all] select 語句;

Order by的使用
基本語法:(select 語句 order by 字段 [asc/desc] limit n,m) Union [distinct/all] (select 語句 order by 字段 [asc/desc] limit n,m);

注意:聯合查詢中使用order by必須在select 語句前後加括號且必須有limit限制。

  • 連接查詢

交叉連接(產生笛卡爾積)
基本語法:select */字段列表 from 表1 cross join 表2; 

內連接
inner join,從一張表中取出所有的記錄去另外一張表中匹配,利用匹配條件進行匹配,成功則保留,失敗就放棄。

基本語法: select */字段列表 from 表1 inner join 表2 on 匹配條件;

注意:沒有匹配條件等於交叉查詢。 

外連接
outer join,按照某一張表作爲主表,拿主表每一條記錄去匹配另一張表的每一條記錄,匹配成功保留,失敗也保留(從表數據爲NULL)。 
左外連接:left join,左表爲主表
右外連接:right join,右表爲主表

基本語法:
左連接:select */字段列表 from 主表 left join 從表 on 連接條件;


右連接:select */字段列表 from 從表 right join 主表 on 連接條件;

Using 關鍵字

用於連接查詢中替換對應的on關鍵字,進行條件匹配

基本語法 :select */字段列表 from 從表 [inner/left/right] join 主表 using(同名字段列表);

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章