2014-01-19 46 views
0

这两个SQL查询有什么区别?这两个SQL查询有什么区别?

查询#1:

select mytab.name, mytab.age, films.title, films.author 
from films, mytab 
where films.id = mytab.id; 

查询#2:

select mytab.name, mytab.age, films.title, films.author 
from films inner join mytab 
on films.id = mytab.id; 

首先是使用 '其中' 语句和普通的SQL查询。第二个是使用内连接。两个查询的结果完全相同。

films -> id, title author 
mytab -> id, name, age 

这是最可能的例子。

这里是类比例子: http://www.w3schools.com/sql/sql_join_inner.asp

+0

请注意,执行速度没有区别,因为人们确实似乎很担心这一点。 –

+0

它们是等同的并且(应该)导致相同的查询计划。 – wildplasser

回答

2

两个查询会产生同样的结果,但唯一的区别是在语法,

1查询使用旧语法参加在那里你描述WHERE从句的关系。

第二个查询使用较新的ANSI语法,其中表格之间的关系在ON子句中定义。

尽管第二种语法是优选的。

Read Here欲了解更多信息。

2

它们在逻辑上是等价的,并且会产生相同的结果。

第一个使用较旧的连接语法。

其次使用ANSI-92连接语法,并且是首选样式。