日期:2014-05-17  浏览次数:20555 次

是否需要join

--数据准备
create table #a(id int)
create table #b(id int)

insert into #a 
select 1 union all
select 2

insert into #b
select 1

--方法1
select a.*,b.*
from #a a,#b b
where a.id=b.id

--方法2
select a.*,b.*
from #a a
inner join #b b on a.id=b.id

--问题:
--查看两者执行计划相同
--请问这2种方法究竟有何区别,哪一种方法的效率更高

------解决方案--------------------
sql server自动调优,这两个语句没有区别
------解决方案--------------------
JOIN 还有 LEFT 和 RIGHT 的用法,这是 where 无法代替的,
另外,使用 JOIN 使表之间的关系更加清晰,而不是混入一堆 where 条件中。
------解决方案--------------------
不过,建议用join,因为现在是2个表的关联,如果有5个表关联,那么关联条件就会很多,所以这个时候用join,所以能比较清晰
------解决方案--------------------
效率是一样的,方式1是以前的一种规范,现在建议用方法2的写法