日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

SQL 四种连接:内连接、左外连接、右外连接、全连接--转载

發布時間:2025/4/5 数据库 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SQL 四种连接:内连接、左外连接、右外连接、全连接--转载 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原文:http://zwdsmileface.iteye.com/blog/2191730

個人理解?
內連接(INNER JOIN)(典型的連接運算,使用像?? =?? 或?? <>?? 之類的比較運算符)。包括相等連接和自然連接。 內連接使用比較運算符根據每個表共有的列的值匹配兩個表中的行?
左連接(LEFT?? JOIN?? 或?? LEFT?? OUTER?? JOIN)是右左邊表中的數據為基準,若左表有數據右表沒有數據,否則顯示左表中的數據右表中的數據顯示為空?
右連接(RIGHT? JOIN? 或? RIGHT?? OUTER?? JOIN)是以右邊表中的數據為基準,若右表有數據左表沒有數據,否則顯示右表中的數據左表中的數據顯示為空?
全連接( FULL?? JOIN?? 或?? FULL?? OUTER?? JOIN)?? 完整外部連接返回左表和右表中的所有行。當某行在另一個表中沒有匹配行時,則另一個表的選擇列表列包含空值。如果表之間有匹配行,則整個結果集行包含基表的數據值。?
下面用幾個實例來詳細說明?
兩個表:?
A(id,name)?
數據:(1,張三)(2,李四)(3,王五)?
B(id,name)?
數據:(1,學生)(2,老師)(4,校長)?

內連接結果:?
select A.*,B.* from A inner join B on A.id=B.id;?
1 張三 1??? 學生?
2 李四 2??? 老師?

左連接結果:?
select A.*,B.* from A left join B on A.id=B.id;?
1 張三 1??? 學生?
2 李四 2??? 老師?
3 王五 NULL NULL?

右連接結果:?
select A.*,B.* from A right join B on A.id=B.id;?
1??? 張三 1 學生?
2??? 李四 2 老師?
NULL NULL 4 校長?

全連接結果?
select A.*,B.* from A full join B on A.id=B.id;?
1 張三 1??? 學生?
2 李四 2??? 老師?
3 王五 NULL NULL?
NULL NULL 4 校長?

****************?
補充:下面這種情況就會用到外連接?
比如有兩個表一個是用戶表,一個是交易記錄表,如果我要查詢每個用戶的交易記錄就要用到左外外連接,因為不是每個用戶都有交易記錄。?
用到左外連接后,有交易記錄的信息就會顯示,沒有的就顯示NULL,就像上面我舉得例子一樣。?
如果不用外連接的話,比如【王五】沒有交易記錄的話,那么用戶表里的【王五】的信息就不會顯示,就失去了查詢所有用戶交易記錄的意義了。?
****************?

看一下結果就能明白各種連接的區別了。

轉載于:https://www.cnblogs.com/davidwang456/p/4334245.html

總結

以上是生活随笔為你收集整理的SQL 四种连接:内连接、左外连接、右外连接、全连接--转载的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。