sql語句中的 inner join 、 left join 、 right join、 full join 的區別


簡單明了地說,連接分內連接和外鏈接

假設有A和B兩張表

內連接:inner join   表示把AB表的記錄相符都顯示出來,把AB表不符合條件的都排除

外連接分三種,即左連接(LEFT OUTER JOIN)、右連接(RIGHT OUTER JOIN)、全連接(FULL OUTER JOIN),下面就簡單解析一下,。1.A LEFT OUTER JOIN B表示把A表的記錄都顯示出來,把B表符合條件的結果集顯示出來,不符合條件的用NULL表示。2.A RIGHT OUTER JOIN B表示把B表的記錄都顯示出來,把A表符合條件的結果集顯示出來,不符合條件的用NULL表示。3.A FULL OUTER JOIN B 表示把A表和B表的記錄都顯示出來,不符合條件的用NULL表示。

 

實例:

[TEST@ORA1] SQL>select * from a;

編號 姓名
---- ----------
1000 張三
2000 李四
3000 王五

[TEST@ORA1] SQL>select * from b;

編號 商品
---- ----------
1000 電視機
2000 錄像機
4000 自行車

[TEST@ORA1] SQL>set null 空值--這里為了顯示方面我把NULL定義成了[空值]

[TEST@ORA1] SQL>select a.*,b.* from a inner join b on a.編號=b.編號;

編號 姓名 編號 商品
---- ---------- ---- ----------
1000 張三 1000 電視機
2000 李四 2000 錄像機

[TEST@ORA1] SQL>select a.*,b.* from a left join b on a.編號=b.編號;

編號 姓名 編號 商品
---- ---------- ---- ----------
1000 張三 1000 電視機
2000 李四 2000 錄像機
3000 王五 空值 空值

[TEST@ORA1] SQL>select a.*,b.* from a right join b on a.編號=b.編號;

編號 姓名 編號 商品
---- ---------- ---- ----------
1000 張三 1000 電視機
2000 李四 2000 錄像機
空值 空值 4000 自行車

[TEST@ORA1] SQL>select a.*,b.* from a full join b on a.編號=b.編號;

編號 姓名 編號 商品
---- ---------- ---- ----------
1000 張三 1000 電視機
2000 李四 2000 錄像機
3000 王五 空值 空值
空值 空值 4000 自行車

---


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM