SQL语句中LEFT JOIN、JOIN、INNER JOIN、RIGHT JOIN的区别?
w3school的一套sql教程:
http://www.w3school.com.cn/sql/index.asp
left join :左連接,返回左表中所有的記錄以及右表中連接字段相等的記錄。
right join :右連接,返回右表中所有的記錄以及左表中連接字段相等的記錄。
inner join :內(nèi)連接,又叫等值連接,只返回兩個(gè)表中連接字段相等的行。
full join :外連接,返回兩個(gè)表中的行:left join + right join
cross join :結(jié)果是笛卡爾積,就是第一個(gè)表的行數(shù)乘以第二個(gè)表的行數(shù)。
舉例:
select * from a;
編號(hào) 姓名
---- ----------
1000 張三
2000 李四
3000 王五
select * from b;
編號(hào) 商品
---- ----------
1000 電視機(jī)
2000 錄像機(jī)
4000 自行車(chē)
select a.*,b.* from a inner join b on a.編號(hào)=b.編號(hào);
編號(hào) 姓名 編號(hào) 商品
---- ---------- ---- ----------
1000 張三 1000 電視機(jī)
2000 李四 2000 錄像機(jī)
select a.*,b.* from a left join b on a.編號(hào)=b.編號(hào);
編號(hào) 姓名 編號(hào) 商品
---- ---------- ---- ----------
1000 張三 1000 電視機(jī)
2000 李四 2000 錄像機(jī)
3000 王五 空值 空值
select a.*,b.* from a right join b on a.編號(hào)=b.編號(hào);
編號(hào) 姓名 編號(hào) 商品
---- ---------- ---- ----------
1000 張三 1000 電視機(jī)
2000 李四 2000 錄像機(jī)
空值 空值 4000 自行車(chē)
select a.*,b.* from a full join b on a.編號(hào)=b.編號(hào);
編號(hào) 姓名 編號(hào) 商品
---- ---------- ---- ----------
1000 張三 1000 電視機(jī)
2000 李四 2000 錄像機(jī)
3000 王五 空值 空值
空值 空值 4000 自行車(chē)
---------------------
作者:Lucky-zhou
來(lái)源:CSDN
原文:https://blog.csdn.net/luckyzhou_/article/details/68490971
版權(quán)聲明:本文為博主原創(chuàng)文章,轉(zhuǎn)載請(qǐng)附上博文鏈接!
轉(zhuǎn)載于:https://www.cnblogs.com/niudaxianren/p/9995494.html
總結(jié)
以上是生活随笔為你收集整理的SQL语句中LEFT JOIN、JOIN、INNER JOIN、RIGHT JOIN的区别?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 第五模块·WEB开发基础-第2章Java
- 下一篇: 使用Redis实现分布式锁