1. 程式人生 > >內連線與左連線,右連線和全連線的區別

內連線與左連線,右連線和全連線的區別

  A   leftjoin   B   的連線的記錄數與A表的記錄數同  
  A   rightjoin   B   的連線的記錄數與B表的記錄數同    
  A   leftjoin   B   等價B   rightjoin   A 
舉個簡單的例子吧,從結果來理解比較具體些。
a表
name sex
張三 男
李四 女

b表
name age
李四 30
王五 23

1\全外連線
select a.name,a.sex,b.name,b.age
from   a full outer join  b on a.name=b.name
結果如下,
name sex name age
張三 男 NULL NULL
李四 女 李四 30
NULL NULL 
王五
23 關聯欄位name,左表有而右表沒有的,如張三,b.name,b.age都為NULL,加上左右兩邊都有的就是左連線的結果;而右表有而左表表沒有的,如王五,a.name,a.sex都為NULL,加上左右兩邊都有的就是右連線的結果;左右兩邊都有的如,李四,這就是內連線。相見如下 2\左 select a.name,a.sex,b.name,b.age from a left outer join b on a.name=b.name 結果如下 name sex name age 張三 男 NULL NULL 李四 女 李四 30 2\右 select a.name,a.sex,b.name,b.age from a right outer join b on a.name=b.name 結果如下 name sex name age 李四 女 李四 30 NULL NULL 王五 23 3\內聯 select a.name,a.sex,b.name,b.age from a inner join b on a.name=b.name 結果如下 name sex name age 李四 女 李四 30 4\交叉 select a.name,a.sex,b.name,b.age from a cross join b on a.name=b.name 結果如下 name sex name age 張三 男 李四 30 李四 女 王五 23 張三 男 王五 23 李四 女 李四 30