sql left join 和 right join解釋

okone96發表於2007-05-14

給個通俗的解釋吧.
例表a
aid adate
1 a1
2 a2
3 a3
表b
bid bdate
1 b1
2 b2
4 b4
兩個表a,b相連線,要取出id相同的欄位
select * from a inner join b on a.aid = b.bid這是僅取出匹配的資料.
此時的取出的是:
1 a1 b1
2 a2 b2
那麼left join 指:
select * from a left join b on a.aid = b.bid
首先取出a表中所有資料,然後再加上與a,b匹配的的資料
此時的取出的是:
1 a1 b1
2 a2 b2
3 a3 空字元
同樣的也有right join
指的是首先取出b表中所有資料,然後再加上與a,b匹配的的資料
此時的取出的是:
1 a1 b1
2 a2 b2
4 空字元 b4

“Outer Join
這款的 Join 方式是一般人比較少用到的, 甚至有些 SQL 的管理者也從未用過, 這真是一件悲哀的代志, 因為善用 Outer Join 是可以簡化一些查詢的工作的, 先來看看 Outer Join 的語法
Select From
[Outer] Join On
語法中的 Outer 是可以省略的, 例如你可以用 Left Join 或是 Right Join, 在本質上, Outer Join 是 inclusive, 叫它做包容性吧! 不同於 Inner Join 的排他性, 因此在 Left Outer Join 的查詢結果會包含所有 Left 資料表的資料, 顛倒過來講, Right Outer Join 的查詢就會包含所有 Right 資料表的資料。”

[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/750220/viewspace-914960/,如需轉載,請註明出處,否則將追究法律責任。

相關文章