2016-03-01 46 views
1
create table Employee(

id int identity(1,1) primary key, 
Username varchar(50), 
FirstName varchar(50), 
LastName varchar(50), 
DepartID int 

) 
create table Departments(

id int identity(1,1) primary key, 
DepartmentName varchar(50) 

) 

兩個加入結果集是一樣的,我們得到Employee匹配和不匹配。是否加入訂單事項性能

Select * from Employee E 
Left Join 
Departments D 
ON D.ID= E.DepartID 

Select * from Departments D 
Right Join Employee E 
ON E.DepartID =D.ID 
+0

由於「左b」與「b右a」相同,所以應該沒有區別。 – dnoeth

+1

使用的標記dbms。性能問題幾乎總是產品特定的! – jarlh

回答

1

這兩個查詢確實是完全可以互換的。在性能和結果上應該沒有差別。

大多數人只使用LEFT JOIN,因爲它看起來更直觀,它是通用語法 - 我不認爲所有的RDBMS都支持RIGHT JOIN。並非所有的RDBMS都支持SQL。例如,SQLite 3不執行RIGHTFULL OUTER JOIN