亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > SQL Server > 正文

MSSQL內外連接(INNER JOIN)語句詳解

2024-08-31 01:00:18
字體:
來源:轉載
供稿:網友
在之前,我對MSSQL中的內連接和外連接所得出的數據集不是很清楚。這幾天重新溫習了一下SQL的書本,現在的思路應該是很清楚了,現在把自己的理解發出來給大家溫習下。希望和我一樣對SQL的連接語句不太理解的朋友能夠有所幫助。(發這么菜的教程,各位大大們別笑話偶了,呵:D )

有兩個表A和表B。
表A結構如下:
Aid:int;標識種子,主鍵,自增ID
Aname:varchar

數據情況,即用select * from A出來的記錄情況如下圖1所示:

MSSQL內外連接(INNER JOIN)語句詳解



圖1:A表數據

表B結構如下:
Bid:int;標識種子,主鍵,自增ID
Bnameid:int

數據情況,即用select * from B出來的記錄情況如下圖2所示:

MSSQL內外連接(INNER JOIN)語句詳解



圖2:B表數據

為了把Bid和Aid加以區分,不讓大家有誤解,所以把Bid的起始種子設置為100。
有SQL基本知識的人都知道,兩個表要做連接,就必須有個連接字段,從上表中的數據可以看出,在A表中的Aid和B表中的Bnameid就是兩個連接字段。
下圖3說明了連接的所有記錄集之間的關系:

MSSQL內外連接(INNER JOIN)語句詳解



圖3:連接關系圖

現在我們對內連接和外連接一一講解。
1.內連接:利用內連接可獲取兩表的公共部分的記錄,即圖3的記錄集C
語句如下:Select * from A JOIN B ON A.Aid=B.Bnameid
運行結果如下圖4所示:

MSSQL內外連接(INNER JOIN)語句詳解



圖4:內連接數據

其實select * from A,B where A.Aid=B.Bnameid與Select * from A JOIN B ON A.Aid=B.Bnameid的運行結果是一樣的。
2.外連接:外連接分為兩種,一種是左連接(Left JOIN)和右連接(Right JOIN)
  (1)左連接(Left JOIN):即圖3公共部分記錄集C+表A記錄集A1。     
     語句如下:select * from A Left JOIN B ON A.Aid=B.Bnameid
     運行結果如下圖5所示:

MSSQL內外連接(INNER JOIN)語句詳解



圖5:左連接數據

     說明:
           在語句中,A在B的左邊,并且是Left Join,所以其運算方式為:A左連接B的記錄=圖3公共部分記錄集C+表A記錄集A1
           在圖3中即記錄集C中的存在的Aid為:2 3 6 7 8           
           圖1中即表A所有記錄集A中存在的Aid為:1 2 3 4 5 6 7 8 9
           表A記錄集A1中存在的Aid=(圖1中即A表中所有Aid)-(圖3中即記錄集C中存在的Aid),最終得出為:1 4 5 9
           由此得出圖5中A左連接B的記錄=圖3公共部分記錄集C+表A記錄集A1,
           最終得出的結果圖5中可以看出Bnameid及Bid非NULL的記錄都為圖3公共部分記錄集C中的記錄;Bnameid及Bid為NULL的Aid為1 4 5 9的四筆記錄就是表A記錄集A1中存在的Aid。

  (2)右連接(Right JOIN):即圖3公共部分記錄集C+表B記錄集B1。
     語句如下:select * from A Right JOIN B ON A.Aid=B.Bnameid
     運行結果如下圖6所示:

MSSQL內外連接(INNER JOIN)語句詳解



圖6:右連接數據

     說明:
           在語句中,A在B的左邊,并且是Right Join,所以其運算方式為:A右連接B的記錄=圖3公共部分記錄集C+表B記錄集B1
           在圖3中即記錄集C中的存在的Aid為:2 3 6 7 8           
           圖2中即表B所有記錄集B中存在的Bnameid為:2 3 6 7 8 11
           表B記錄集B1中存在的Bnameid=(圖2中即B表中所有Bnameid)-(圖3中即記錄集C中存在的Aid),最終得出為:11
           由此得出圖6中A右連接B的記錄=圖3公共部分記錄集C+表B記錄集B1,
           最終得出的結果圖6中可以看出Aid及Aname非NULL的記錄都為圖3公共部分記錄集C中的記錄;Aid及Aname為NULL的Aid為11的記錄就是表B記錄集B1中存在的Bnameid。

總結:

通過上面的運算解說,相信很多人已經想到,上面的情況(包括圖3的關系圖)說明的都只是A在B的左邊的情況,
以下語句B在A的右邊的又會出現什么情況呢??
select * from B Left JOIN A ON A.Aid=B.Bnameid
select * from B Right JOIN A ON A.Aid=B.Bnameid

其實對圖3左右翻轉一下就可以得出以下結論:
select * from B Left JOIN A ON A.Aid=B.Bnameid和select * from A Right JOIN B ON A.Aid=B.Bnameid所得出的記錄集是一樣的

select * from B Right JOIN A ON A.Aid=B.Bnameid和select * from A Left JOIN B ON A.Aid=B.Bnameid所得出的記錄集也是一樣的。

第一次寫類似教程的貼子,希望和我一樣對SQL的連接語句不太理解的朋友能夠有所幫助。謝謝大家支持。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产一区二区三区毛片| 亚洲 日韩 国产第一| 欧美xxxx18性欧美| 国产亚洲精品91在线| 日韩欧美成人免费视频| 亚洲国产成人91精品| 精品亚洲国产视频| 国产精品av电影| 欧美老妇交乱视频| 国产欧美精品日韩精品| 欧美成人精品三级在线观看| 欧美成人一区在线| 日本国产欧美一区二区三区| 欧美激情手机在线视频| 精品成人国产在线观看男人呻吟| 综合欧美国产视频二区| 久久精品国产69国产精品亚洲| 国产精品丝袜久久久久久不卡| 亚洲夜晚福利在线观看| 欧美精品一区三区| 日韩电影在线观看免费| 国产精品视频资源| 国产精品对白刺激| 精品日本美女福利在线观看| 国产精品视频公开费视频| 日韩在线视频观看正片免费网站| 日韩欧美在线视频免费观看| 粉嫩av一区二区三区免费野| 日韩视频欧美视频| 国产亚洲在线播放| 国内精品免费午夜毛片| 日韩中文在线视频| 国产欧美日韩专区发布| 日韩黄色在线免费观看| 亚洲欧美中文字幕在线一区| 日日狠狠久久偷偷四色综合免费| 亚洲精品久久久久国产| 日韩电影免费观看在线| 成人h片在线播放免费网站| 亚洲美女av电影| 国产精品69久久| 一区二区亚洲精品国产| 久久国产天堂福利天堂| 国产a级全部精品| 亚洲桃花岛网站| 日韩精品视频在线观看免费| 成人激情视频在线| 国产精品国产亚洲伊人久久| 国产热re99久久6国产精品| 成人网欧美在线视频| 欧美精品激情在线观看| 最近2019年中文视频免费在线观看| 国模私拍一区二区三区| 97视频在线观看免费| 亚洲一区二区三区乱码aⅴ蜜桃女| 国产一区二区三区在线| www.久久草.com| 亚洲精品网址在线观看| 成人h猎奇视频网站| 亚洲在线一区二区| 欧美日韩国产精品一区二区不卡中文| 日韩福利伦理影院免费| 亚洲精品电影网站| 国产99视频精品免视看7| 日韩视频在线免费| 亚洲美女动态图120秒| 久久精品99久久久香蕉| 亚洲视频在线免费观看| 亚洲国产精品悠悠久久琪琪| 欧美床上激情在线观看| 中文字幕九色91在线| 日韩成人av在线播放| 国产成人午夜视频网址| 在线播放国产一区二区三区| 中文字幕精品av| 97**国产露脸精品国产| 91精品国产自产在线| 欧美电影第一页| 91精品久久久久久久| 国产精品久久久久久久久久ktv| 97在线视频免费观看| 91九色单男在线观看| 日韩在线观看免费av| 久久免费少妇高潮久久精品99| 亚洲精品国产精品久久清纯直播| 97国产精品视频人人做人人爱| 欧美www视频在线观看| 亚洲欧美国产一本综合首页| 日韩欧美999| 日本91av在线播放| 欧美区二区三区| 国产亚洲美女精品久久久| 国产精品久久久久久久久久尿| 国产精品久久久久9999| 久久夜精品va视频免费观看| 欧美日韩成人免费| 久久久久久久香蕉网| 91美女福利视频高清| 久久精品国产久精国产思思| 久久精品国产欧美激情| 国产精品第3页| 久久久免费精品视频| 精品色蜜蜜精品视频在线观看| 亚洲国产日韩欧美在线动漫| 久久频这里精品99香蕉| 亚洲午夜未满十八勿入免费观看全集| 国产精品7m视频| 日韩精品免费在线观看| 亚洲美女av在线| 亚洲欧美国产高清va在线播| 欧美大片欧美激情性色a∨久久| 欧美高清无遮挡| 成人有码在线视频| 欧美激情欧美激情| 久久久国产精品视频| 久久久久免费精品国产| 亚洲国产精品网站| 欧美在线视频网站| 欧美xxxx18国产| 国产精品免费一区二区三区都可以| 亚洲最大在线视频| 97在线免费视频| 欧美最顶级丰满的aⅴ艳星| 伊是香蕉大人久久| 中文字幕亚洲欧美在线| 亚洲欧洲第一视频| 国产成人精品久久久| 日韩最新中文字幕电影免费看| 欧美在线视频免费播放| 日韩欧美在线视频观看| 成人av.网址在线网站| 国产精品男人爽免费视频1| 国产精品亚洲美女av网站| 亚洲精品一区二三区不卡| 韩国美女主播一区| 精品高清一区二区三区| 久久久极品av| 国产欧美日韩丝袜精品一区| 亚洲欧洲xxxx| 久久免费国产视频| 国产人妖伪娘一区91| 一区二区国产精品视频| 久久国产精品网站| 亚洲成人久久网| 91精品国产91久久久| 5278欧美一区二区三区| 亚洲国产精品女人久久久| 另类少妇人与禽zozz0性伦| 久久久久国色av免费观看性色| 精品日韩中文字幕| 欧美亚洲另类激情另类| 久热精品在线视频| 久久视频在线观看免费| 国内久久久精品| 日韩美女在线播放| 亚洲欧美国内爽妇网| 欧美另类交人妖| 日韩成人av在线播放| 91丨九色丨国产在线| 欧美性猛交xxxxx免费看| 亚洲国产成人精品电影| 亚洲国产天堂久久综合网| 综合网日日天干夜夜久久| 成人激情视频在线播放|