程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> 其他數據庫知識 >> MSSQL >> sql server幾種Join的差別測試辦法

sql server幾種Join的差別測試辦法

編輯:MSSQL

sql server幾種Join的差別測試辦法。本站提示廣大學習愛好者:(sql server幾種Join的差別測試辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是sql server幾種Join的差別測試辦法正文


重要來引見下Inner Join , Full Out Join , Cross Join , Left Join , Right Join的差別。

Inner Join:挑選雙方都有的記載
Full Out Join:雙方都挑選出來,婚配能婚配的,不克不及婚配的用NULL列出
Cross Join:列出雙方一切組合,也稱為笛卡爾集 A×B
Left Join:以右邊的表為主表,列出主表一切記載,婚配能婚配的,不克不及婚配的用 NULL列出
Right Join:以左邊的表為主表,列出主表一切記載,婚配能婚配的,不婚配的用NULL列出

上面來看代碼:

創立測試表:

CREATETABLE CONSUMERS 
(
CONSUMER_ID INTNOTNULL,
CONSUMER_NAME VARCHAR(10) NOTNULL
)

CREATETABLE ORDERS
(
CONSUMER_ID INTNOTNULL, 
ORDER_ID VARCHAR(10) NOTNULL)

編測試數據

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了,詳細的年夜家可以參考之前宣布的文章。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved