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

时间:2014-01-19 01:31:08

标签: sql database postgresql inner-join

这两个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;

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

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

尽可能是最贫穷的例子。

以下是类比示例: http://www.w3schools.com/sql/sql_join_inner.asp

2 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:2)

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

第一个查询使用旧语法进行连接,您可以在WHERE子句中描述关系。

2nd Query使用较新的ANSI语法,其中表之间的关系在ON子句中定义。

虽然第二种语法是首选。

Read Here了解更多信息。

相关问题