用兩個表(a_table、b_table),關聯欄位a_table.a_id和b_table.b_id來演示一下mysql的內連線、外連線( 左(外)連線、右(外)連線、全(外)連線)。
mysql版本:server version: 5.6.31 mysql community server (gpl)
資料庫表:a_table、b_table
主題:內連線、左連線(左外連線)、右連線(右外連線)、全連線(全外連線)
關鍵字:inner join on
語句:select * from a_table a inner join b_table bon a.a_id = b.b_id;
執行結果:
說明:組合兩個表中的記錄,返回關聯字段相符的記錄,也就是返回兩個表的交集(陰影)部分。
關鍵字:left join on / left outer join on
語句:select * from a_table a left join b_table bon a.a_id = b.b_id;
執行結果:
說明:left join 是left outer join的簡寫,它的全稱是左外連線,是外連線中的一種。
左(外)連線,左表(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;
執行結果:
說明:right join是right outer join的簡寫,它的全稱是右外連線,是外連線中的一種。
與左(外)連線相反,右(外)連線,左表(a_table)只會顯示符合搜尋條件的記錄,而右表(b_table)的記錄將會全部表示出來。左表記錄不足的地方均為null。
等值連線(我們在看看等值連線的結果)
select * from t_a a,t_b b where a.id=b.id;
select * from t_a a join t_b b on a.id=b.id;--等值連線也可以這樣寫
注意:以前理解等值連線和完全外連線是一回事,現在看來是我理解錯了。等值連線是只把滿足條件的兩個表的行相連,然後顯示出來。完全外連線是把匹配查詢條件的行、左表沒有匹配到的、右表沒有匹配到的都顯示出來。
內連線,左連線,右連線,全連線
內連線,左連線,右連線,全連線 表t1 表t2 id name passwd id jifen dengji 1 jack jpw 1 20 3 2 tom tpw 3 50 4 1,內連線 如果想把使用者資訊 積分 等級都列出來,那麼一般會這樣寫 普通 select from t1,t2 wher...
資料庫左連線,右連線,內連線
我們來舉個例子。天庭上面有乙個管理系統 管理系統有個主表 主表記錄著各個神仙的基本資訊 我們把它當成表a 還有個表記錄著他們這個神仙的詳細資訊 我們把它當成表b 表a的資訊為 idaname position1李靖 托塔天王 2值年神李丙 四值功曹 3增長天王 四大天王 4青龍孟章神君 四方神錶b的...
資料庫左連線 右連線 內連線 全連線區別
left join 左連線 返回包括左表中的所有記錄和右表中連線字段相等的記錄。right join 右連線 返回包括右表中的所有記錄和左表中連線字段相等的記錄。inner join 等值連線或者叫內連線 只返回兩個表中連線字段相等的行。full join 全外連線 返回左右表中所有的記錄和左右表中...