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