SQL - 在where

时间:2015-09-16 11:33:19

标签: sql performance join where-clause

我只是希望有人能告诉我下面两个查询之间的效率是否存在差异。

查询1

SELECT A.CUSTOMER, B.INVOICE FROM CUS A

JOIN INV B ON
A.CUS_ID = B.CUS_ID

WHERE
B.INV_DATE > '2015-09-06'

查询2

SELECT A.CUSTOMER, B.INVOICE FROM CUS A, INV B

WHERE A.CUS_ID = B.CUS_ID AND

B.INV_DATE > '2015-09-06'

我很确定查询1会更有效率,但我希望有人可以确认。

1 个答案:

答案 0 :(得分:1)

SELECT * FROM table1,table2,...语法适用于几个表,但随着表数的增加,它会成倍地(不一定是数学上准确的语句)变得越来越难以阅读。

JOIN语法更难编写(在开头),但它明确了哪些条件会影响哪些表。这使得犯错误更加困难。

此外,如果所有连接都是INNER,则两个版本都是等效的。然而,当你在声明中的任何地方加入OUTER时,事情变得更加复杂,它实际上保证你写的东西不会成为 询问你的想法。

您的效果问题已得到解答:没有区别。