2014-09-02 82 views
0

SQL连接一般概念:SQL表链接顺序

我有2个表 员工1000的行, StaffUnitAllocation 10行链接到员工

有顺序的性能/好习惯的差异,他们链接查询:

select s.FullName from staff s 
join StaffUnitAllocation sa on sa.StaffUsername = s.Username 
where sa.UnitID = '3' 

select s.FullName from StaffUnitAllocation sa 
join staff s on sa.StaffUsername = s.Username 
where sa.UnitID = '3' 

都给予同样的结果

+2

你检查了查询计划吗?我假设,因为它是完全相同的查询计划将是相同的 - 我刚才尝试这与我自己的几个表和查询计划是相同的。它取决于你正在做的连接,但是内部连接应该产生相同的结果,所以你期望计划是相同的 – Charleh 2014-09-02 16:02:45

回答

1

在性能上有差异吗?

不,SQL是一种声明性语言,所以对于基于查询本身的执行计划没有太多可以说的。它取决于各种因素,首先是DBMS的内部工作,在这种情况下是sql-server。

在良好实践中有差异吗?

可读性是最困难的,也是编写SQL查询时要完成的最重要的事情之一。遵循体面的代码约定对此有很大帮助。对于这种特殊情况,一个好的做法是从大多数列被选中的表格开始。