Mysql - 左连接、右连接、内连接、全连接
一、概念
內連接(inner join):又稱等值連接,只返回兩個表中聯結字段相等的行
左連接(left join):全稱是左外連接(left outer join),是外連接中的一種。返回包括左表中的所有記錄和右表中聯結字段相等的記錄
右連接(right join):全稱是右外連接(right?outer join),是外連接中的一種。返回包括右表中的所有記錄和左表中聯結字段相等的記錄
全連接(full join):全稱是全外連接。MySQL目前不支持此種方式,可以用其他方式(unoin)替代解決。
二、內連接
關鍵字:inner join on
語句:select * from a_table a inner join b_table b on a.id = b.id
范圍:交集(A∩B)
說明:?組合兩個表中的記錄,返回關聯字段相符的記錄,也就是返回兩個表的交集(陰影)部分
三、左連接
關鍵字:left join on / left outer join on
語句:select?* from a_table a left join b_table b on a.a_id = b.b_id;
說明:左表(a_table)的記錄將會全部表示出來,而右表(b_table)只會顯示符合搜索條件的記錄。右表記錄不足的地方均為NULL
四、右連接
關鍵字:right join on / right outer join on
語句:select * from a_table a right outer join b_table b on a.a_id = b.b_id;
說明: 與左(外)連接相反。右(外)連接,左表(a_table)只會顯示符合搜索條件的記錄,而右表(b_table)的記錄將會全部表示出來。左表記錄不足的地方均為NULL。
五、全連接
關鍵字:union / union all
語句:
(select colum1,colum2…columN from a_table?) union (select colum1,colum2…columN from b_table?)
(select colum1,colum2…columN from a_table) union all (select colum1,colum2…columN from b_table? );
使用注意事項:
1.通過union連接的SQL它們分別單獨取出的列數必須相同;
2.不要求合并的表列名稱相同時,以第一個sql 表列名為準;
3.使用union 時,完全相等的行,將會被合并,由于合并比較耗時,一般不直接使用 union 進行合并,而是通常采用union all 進行合并;
4.被union 連接的sql 子句,單個子句中不用寫order by ,因為不會有排序的效果。但可以對最終的結果集進行排序;
總結
以上是生活随笔為你收集整理的Mysql - 左连接、右连接、内连接、全连接的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 脑洞|滴滴美团大战后,「滴滴修车」还有多
- 下一篇: WordPress + Avada主题