加入订单是否与性能有关

时间:2016-03-01 07:06:05

标签: sql

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)

) 

两个Join结果集都相同,我们得到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

1 个答案:

答案 0 :(得分:1)

您的两个查询确实完全可以互换。并且应该没有性能和结果的差异。

大多数人只使用LEFT JOIN,因为它看起来更直观,而且它是通用语法 - 我不认为所有RDBMS都支持RIGHT JOIN。并非所有RDBMS都支持SQL。例如,SQLite 3未实现RIGHTFULL OUTER JOIN