SQL語句中LEFT JOIN、JOIN、INNER JOIN、RIGHT JOIN的區別?


w3school的一套sql教程:

http://www.w3school.com.cn/sql/index.asp

left join :左連接,返回左表中所有的記錄以及右表中連接字段相等的記錄。
right join :右連接,返回右表中所有的記錄以及左表中連接字段相等的記錄。
inner join :內連接,又叫等值連接,只返回兩個表中連接字段相等的行。
full join :外連接,返回兩個表中的行:left join + right join
cross join :結果是笛卡爾積,就是第一個表的行數乘以第二個表的行數。


舉例:


select * from a;
編號 姓名
---- ----------
1000 張三
2000 李四
3000 王五


select * from b;
編號 商品
---- ----------
1000 電視機
2000 錄像機
4000 自行車


select a.*,b.* from a inner join b on a.編號=b.編號;
編號 姓名 編號 商品
---- ---------- ---- ----------
1000 張三 1000 電視機
2000 李四 2000 錄像機


select a.*,b.* from a left join b on a.編號=b.編號;
編號 姓名 編號 商品
---- ---------- ---- ----------
1000 張三 1000 電視機
2000 李四 2000 錄像機
3000 王五 空值 空值


select a.*,b.* from a right join b on a.編號=b.編號;
編號 姓名 編號 商品
---- ---------- ---- ----------
1000 張三 1000 電視機
2000 李四 2000 錄像機
空值 空值 4000 自行車


select a.*,b.* from a full join b on a.編號=b.編號;
編號 姓名 編號 商品
---- ---------- ---- ----------
1000 張三 1000 電視機
2000 李四 2000 錄像機
3000 王五 空值 空值
空值 空值 4000 自行車
---------------------
作者:Lucky-zhou
來源:CSDN
原文:https://blog.csdn.net/luckyzhou_/article/details/68490971
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!


免責聲明!

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



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