sql server幾種Join的區(qū)別測(cè)試方法
主要來(lái)介紹下Inner Join , Full Out Join , Cross Join , Left Join , Right Join的區(qū)別。
Inner Join:篩選兩邊都有的記錄
Full Out Join:兩邊都篩選出來(lái),匹配能匹配的,不能匹配的用NULL列出
Cross Join:列出兩邊所有組合,也稱為笛卡爾集 A×B
Left Join:以左邊的表為主表,列出主表所有記錄,匹配能匹配的,不能匹配的用 NULL列出
Right Join:以右邊的表為主表,列出主表所有記錄,匹配能匹配的,不匹配的用NULL列出
下面來(lái)看代碼:
創(chuàng)建測(cè)試表:
CREATETABLE CONSUMERS ( CONSUMER_ID INTNOTNULL, CONSUMER_NAME VARCHAR(10) NOTNULL ) CREATETABLE ORDERS ( CONSUMER_ID INTNOTNULL, ORDER_ID VARCHAR(10) NOTNULL)
編測(cè)試數(shù)據(jù)
INSERT CONSUMERS VALUES ( 1, 'AA') INSERT CONSUMERS values ( 2, 'BB') INSERT CONSUMERS values ( 3, 'CC') INSERT ORDERS VALUES ( 2, 'O100001') INSERT ORDERS VALUES ( 3, 'O100002') INSERT ORDERS VALUES ( 3, 'O100003') INSERT ORDERS VALUES ( 4, 'O100004')
測(cè)試
--Inner Join --篩選兩邊都有的記錄 SELECT * FROM ORDERS o INNER JOIN CONSUMERS c ON o.CONSUMER_ID = c.CONSUMER_ID --Full Out Join --兩邊都篩選出來(lái),匹配能匹配的,不能匹配的用NULL列出 SELECT * FROM ORDERS o FULL OUTER JOIN CONSUMERS c ON o.CONSUMER_ID = c.CONSUMER_ID --Cross Join --列出兩邊所有組合,即笛卡爾集A×B SELECT * FROM ORDERS o CROSS JOIN CONSUMERS c --Left Join --以左邊的表為主表,列出主表所有記錄,匹配能匹配的,不能匹配的用NULL列出 SELECT * FROM CONSUMERS c left join ORDERS o on c .CONSUMER_ID = o .CONSUMER_ID --Right Join --以右邊的表為主表,列出主表所有記錄,匹配能匹配的,不能匹配的用NULL列出 SELECT * FROM CONSUMERS c RIGHT JOIN ORDERS o on c .CONSUMER_ID = o .CONSUMER_ID
ok了,具體的大家可以參考腳本之家以前發(fā)布的文章。
相關(guān)文章
Sql Server中的系統(tǒng)視圖詳細(xì)介紹
這篇文章主要介紹了Sql Server中的系統(tǒng)視圖詳細(xì)介紹,本文講解了系統(tǒng)視圖是干什么呢、都定義在哪呢、一些使用例子等內(nèi)容,需要的朋友可以參考下2015-02-02掌握SQL?Server實(shí)戰(zhàn)教程之SQL?Server的安裝指南
對(duì)于項(xiàng)目來(lái)說(shuō)最重要的一環(huán)莫過(guò)于數(shù)據(jù)庫(kù)了,一個(gè)良好的數(shù)據(jù)庫(kù)能夠讓項(xiàng)目更加清晰、條理分明,下面這篇文章主要給大家介紹了關(guān)于掌握SQL?Server實(shí)戰(zhàn)教程之SQL?Server的安裝指南,需要的朋友可以參考下2023-04-04MSSQLSERVER不同版本設(shè)置開(kāi)啟遠(yuǎn)程連接(sa配置)
這篇文章主要為大家詳細(xì)介紹了MSSQLSERVER不同版本設(shè)置開(kāi)啟遠(yuǎn)程連接,包括SQL SERVER 2008/2012/2012R2/2014開(kāi)啟遠(yuǎn)程連接的設(shè)置方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-03-03sql server 2012 備份集中的數(shù)據(jù)庫(kù)備份與現(xiàn)有的xxx數(shù)據(jù)庫(kù)不同
這篇文章主要介紹了sql server 2012 備份集中的數(shù)據(jù)庫(kù)備份與現(xiàn)有的xxx數(shù)據(jù)庫(kù)不同,需要的朋友可以參考下2016-07-07SQL Server 公用表表達(dá)式(CTE)實(shí)現(xiàn)遞歸的方法
這篇文章主要介紹了SQL Server 公用表表達(dá)式(CTE)實(shí)現(xiàn)遞歸的方法,需要的朋友可以參考下2017-05-05sql?server如何去除數(shù)據(jù)中的一些無(wú)用的空格
這篇文章主要介紹了sql?server去除數(shù)據(jù)中的一些無(wú)用的空格,本文給大家提到了一些常用的函數(shù),結(jié)合示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-05-05SQL Server誤區(qū)30日談 第9天 數(shù)據(jù)庫(kù)文件收縮不會(huì)影響性能
收縮文件的過(guò)程非常影響性能,這個(gè)過(guò)程需要移動(dòng)大量數(shù)據(jù)從而造成大量IO,這個(gè)過(guò)程會(huì)被記錄到日志從而造成日志暴漲,相應(yīng)的,還會(huì)占去大量的CPU資源2013-01-01sql server動(dòng)態(tài)存儲(chǔ)過(guò)程按日期保存數(shù)據(jù)示例
,在sql server存儲(chǔ)過(guò)程中進(jìn)行日期計(jì)算,按日期建表效率最高,下面就公司項(xiàng)目的部分動(dòng)態(tài)存儲(chǔ)過(guò)程粘貼出來(lái)2014-08-08數(shù)據(jù)庫(kù)計(jì)算時(shí)間差的三種函數(shù)和方法實(shí)例代碼
在日常工作中經(jīng)常會(huì)需要計(jì)算兩個(gè)日期的時(shí)間差,這篇文章主要給大家介紹了關(guān)于數(shù)據(jù)庫(kù)計(jì)算時(shí)間差的三種函數(shù)和方法的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-01-01