titles 表
sh ph(出版商編號)
232342 001
0432 003
82478123 005
publishers 表
ph mc
001 紅虎
002 rmh
003 hazl
現要把這兩個表的內容合成如下的表結構:
sh(書號) ph(出版商編號) mc(出版商名稱)
現在看看採用四種鏈接方法的結果會有什麼不同。先說說他們的命令:
內聯接:
sele titles.sh,publishers.ph,publishers.mc ;
from titles inner join publishers ; &&內聯接中的inner是可以省略的
on titles.ph=publishers.ph
外聯接:
sele titles.sh,publishers.ph,publishers.mc ;
from titles outer join publishers ;
on titles.ph=publishers.ph
左聯接:
sele titles.sh,publishers.ph,publishers.mc ;
from titles left join publishers ;
on titles.ph=publishers.ph
右聯接:
sele titles.sh,publishers.ph,publishers.mc ;
from titles right join publishers ;
on titles.ph=publishers.ph
大家可能看到,除了在join之前的那個關鍵字不同之外,其他地方是一模一樣的,鏈接條件(即on那一部分)也是一樣的。結果:
titles 表
sh ph(出版商編號)
232342 001
0432 003
82478123 005
publishers 表
ph mc
001 紅虎
002 rmh
003 hazl
內鏈接inner://兩個表滿足titles.ph=publishers.ph這個條件的就取出來,即左右兩邊表都要有的記錄才放進結果中。
232342 001 紅虎
0432 003 hazl
全鏈接outer://兩個表只要是有記錄存在的就顯示出來,如果左邊表有的記錄右邊表沒有,就爲null,有沒有是以titles.ph=publishers.ph來衡量
//也爲外連接
232342 001 001 紅虎
Null Null 002 rmh
0432 003 003 hazl
82478123 005 Null Null
左鏈接://左邊表有的都顯示出來,而對於右邊表沒有titles.ph=publishers.ph的,就爲空
232342 001 001 紅虎
0432 003 003 hazl
82478123 005 Null Null
右鏈接:
232342 001 001 紅虎
Null Null 002 rmh
0432 003 003 hazl