一般所說的左連線,外連線是指左外連線,右外連線。
1、先說左外連線和右外連線:
先來檢視一下我們要測試的兩個表的資料:
select * from t1;
id name
1aaa
2bbb
select * from t2;
idage
130
對於左外聯接:
sql left join 關鍵字
select column_name(s)
from table_name1
left join table_name2
ontable_name1.column_name=table_name2.column_name
注釋:在某些資料庫中, left join 稱為 left outer join。
select t1.id,t1.`name`,t2.id,t2.age from t1left join t2 on t1.id= t2.id;
idname
id1age
1aaa120
2bbb
null
null
對於右外連線:
語法:
select column_name(s)from table_name1
right join table_name2
on table_name1.column_name=table_name2.column_name
注釋:在某些資料庫中, right join 稱為 right outer join。
select t1.id,t1.`name`,t2.id,t2.age from t1right join t2 on t1.id= t2.id;
idname
id1age
1aaa120
null
null330
從上面的顯示你可以看出:左外連線是以左邊的表為基準。通俗的講,先將左邊的表全部顯示出來,然後右邊的表id與左邊表id相同的記錄就「拼接」上去,比如說id為1的記錄。如果沒有匹配的id,比如說t1中id為2的t2中就沒有。那邊就以null顯示。
右外連線過程正好相反。
2、再看內連線:
語法:
select column_name(s)from table_name1
inner join table_name2
on table_name1.column_name=table_name2.column_name
注釋:inner join 與 join 是相同的。
select * from t1 inner join t2 ont1.id=t2.id;
idname
id1age
1aaa120
看到沒有? 只有一條記錄。內連線就是只取出符合過濾條件的記錄 也就是t1.id=t2.id 那麼符合t1.id=t2.id的記錄只有id=1這一條,所以只顯示一條。 不像外連線,是將你作為基準的表(左外連線就是左邊表為基準,右外連線就是右邊表為基準)的所有行都顯示出來。
**(
資料庫左連線,右連線,內連線
我們來舉個例子。天庭上面有乙個管理系統 管理系統有個主表 主表記錄著各個神仙的基本資訊 我們把它當成表a 還有個表記錄著他們這個神仙的詳細資訊 我們把它當成表b 表a的資訊為 idaname position1李靖 托塔天王 2值年神李丙 四值功曹 3增長天王 四大天王 4青龍孟章神君 四方神錶b的...
資料庫左連線,右連線,內連線,外連線
首先連線有 內連線,外連線 左外,右外 全連線 交集 交叉連線 笛卡爾積 先略兩個表 尷尬,join打錯了,畢竟英語沒有6級 解釋下就是以左邊表id 案例裡面是test1 為基礎和右表id對比,左表有的右表也有就也出來,右表沒有的就null咯,右連線和左連線相反 enh,以右邊表id為基礎和左邊表i...
資料庫內連線 左連線 右連線
1.內連線我們通常用的連線,表表連線只顯示交集資料 2.外連線分左外連線 table1 left outer join on table2 和右外連線table1 right outer join on table2 和全連線 table1 full outer join on table2 2.1...