sql join 子句用於把來自兩個或多個表的行結合起來,基於這些表之間的共同字段。
最常見的 join 型別:sql inner join(簡單的 join)、sql left join、sql right join、sql full join,其中前一種是內連線,後三種是外鏈結。
假設我們有兩張表,table a是左邊的表,table b是右邊的表。
idname
1google2**
3微博4facebook
idaddress1美國
5中國3中國
6美國inner join
內連線是最常見的一種連線,只連線匹配的行。
inner join語法
select column_name(s)
from table 1
inner join table 2
ontable 1.column_name=table 2.column_name
注釋:inner join與join是相同
inner join產生的結果集中,是1和2的交集。
select * from table a inner join table b
on table a.id=table b.id
執行以上sql輸出結果如下:
idname
address
1google美國3
微博中國
left join
left join返回左表的全部行和右表滿足on條件的行,如果左表的行在右表中沒有匹配,那麼這一行右表中對應資料用null代替。
left join 語法
select column_name(s)
from table 1
left join table 2
on table 1.column_name=table 2.column_name
注釋:在某些資料庫中,left join 稱為left outer join
left join產生表1的完全集,而2表中匹配的則有值,沒有匹配的則以null值取代。
select * from table a left join table b
on table a.id=table b.id
執行以上sql輸出結果如下:
idname
address
1google美國2
**null3微博
中國4facebook
null
right join
right join返回右表的全部行和左表滿足on條件的行,如果右表的行在左表中沒有匹配,那麼這一行左表中對應資料用null代替。
right join語法
select column_name(s)
from table 1
right join table 2
on table 1.column_name=table 2.column_name
注釋:在某些資料庫中,right join 稱為right outer join
right join產生表2的完全集,而1表中匹配的則有值,沒有匹配的則以null值取代。
select * from table a right join table b
on table a.id=table b.id
執行以上sql輸出結果如下:
idname
address
1google美國5
null中國3
微博中國
6null
美國full outer join
full join 會從左表 和右表 那裡返回所有的行。如果其中乙個表的資料行在另乙個表中沒有匹配的行,那麼對面的資料用null代替
full outer join語法
full outer join產生1和2的並集。但是需要注意的是,對於沒有匹配的記錄,則會以null做為值。
select * from table a full outer join table b
on table a.id=table b.id
執行以上sql輸出結果如下:
idname
address
1google美國2
**null3微博
中國4facebook
null
5null中國6
null
美國
SQL的各種連線Join詳解
sql join 子句用於把來自兩個或多個表的行結合起來,基於這些表之間的共同字段。最常見的 join 型別 sql inner join 簡單的 join sql left join sql right join sql full join,其中前一種是內連線,後三種是外鏈結。假設我們有兩張表,t...
sql的各種join連線
1 select from tablea inner join tableb 2 on tablea.name tableb.name 3id name id name 4 51 pirate 2 pirate 63 ninja 4 ninja78 9inner join 10產生的結果集中,是a和...
也談SQL各種連線(JOIN)
最近公司在招人,同事問了幾個自認為資料庫可以的應聘者關於庫連線的問題,回答不盡理想 現在在這寫寫關於它們的作用 假設有如下表 乙個為投票主表,乙個為投票者資訊表 記錄投票人ip及對應投票型別,左右連線實際說是我們聯合查詢的結果以哪個表為準 1 如右接連 right join 或 right oute...