sql server幾種Join的區(qū)別測試方法
主要來介紹下Inner Join , Full Out Join , Cross Join , Left Join , Right Join的區(qū)別。
Inner Join:篩選兩邊都有的記錄
Full Out Join:兩邊都篩選出來,匹配能匹配的,不能匹配的用NULL列出
Cross Join:列出兩邊所有組合,也稱為笛卡爾集 A×B
Left Join:以左邊的表為主表,列出主表所有記錄,匹配能匹配的,不能匹配的用 NULL列出
Right Join:以右邊的表為主表,列出主表所有記錄,匹配能匹配的,不匹配的用NULL列出
下面來看代碼:
創(chuàng)建測試表:
CREATETABLE CONSUMERS ( CONSUMER_ID INTNOTNULL, CONSUMER_NAME VARCHAR(10) NOTNULL ) CREATETABLE ORDERS ( CONSUMER_ID INTNOTNULL, ORDER_ID VARCHAR(10) NOTNULL)
編測試數(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')
測試
--Inner Join --篩選兩邊都有的記錄 SELECT * FROM ORDERS o INNER JOIN CONSUMERS c ON o.CONSUMER_ID = c.CONSUMER_ID --Full Out Join --兩邊都篩選出來,匹配能匹配的,不能匹配的用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ā)布的文章。
相關文章
掌握SQL?Server實戰(zhàn)教程之SQL?Server的安裝指南
對于項目來說最重要的一環(huán)莫過于數(shù)據(jù)庫了,一個良好的數(shù)據(jù)庫能夠讓項目更加清晰、條理分明,下面這篇文章主要給大家介紹了關于掌握SQL?Server實戰(zhàn)教程之SQL?Server的安裝指南,需要的朋友可以參考下2023-04-04sql server 2012 備份集中的數(shù)據(jù)庫備份與現(xiàn)有的xxx數(shù)據(jù)庫不同
這篇文章主要介紹了sql server 2012 備份集中的數(shù)據(jù)庫備份與現(xiàn)有的xxx數(shù)據(jù)庫不同,需要的朋友可以參考下2016-07-07SQL Server 公用表表達式(CTE)實現(xiàn)遞歸的方法
這篇文章主要介紹了SQL Server 公用表表達式(CTE)實現(xiàn)遞歸的方法,需要的朋友可以參考下2017-05-05sql?server如何去除數(shù)據(jù)中的一些無用的空格
這篇文章主要介紹了sql?server去除數(shù)據(jù)中的一些無用的空格,本文給大家提到了一些常用的函數(shù),結合示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-05-05SQL Server誤區(qū)30日談 第9天 數(shù)據(jù)庫文件收縮不會影響性能
收縮文件的過程非常影響性能,這個過程需要移動大量數(shù)據(jù)從而造成大量IO,這個過程會被記錄到日志從而造成日志暴漲,相應的,還會占去大量的CPU資源2013-01-01sql server動態(tài)存儲過程按日期保存數(shù)據(jù)示例
,在sql server存儲過程中進行日期計算,按日期建表效率最高,下面就公司項目的部分動態(tài)存儲過程粘貼出來2014-08-08數(shù)據(jù)庫計算時間差的三種函數(shù)和方法實例代碼
在日常工作中經(jīng)常會需要計算兩個日期的時間差,這篇文章主要給大家介紹了關于數(shù)據(jù)庫計算時間差的三種函數(shù)和方法的相關資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2024-01-01