內連線與左連線,右連線和全連線的區別
阿新 • • 發佈:2019-02-09
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