SQL - 两个SQL查询之间的差异

时间:2018-02-13 19:09:25

标签: sql postgresql

我有两个SQL查询

SELECT * FROM Table1 T1, Table2 T2 WHERE T1.Key = T2.Key AND T2.Key = T1.Key

SELECT * FROM Table1 T1 JOIN Table2 T2 ON T1.Key = T2.Key And T2.Key = T1.Key

这两个查询是否存在差异?如果它们相同,哪一个使用效率更高?

2 个答案:

答案 0 :(得分:1)

您的第一个查询使用ANSI-89 SQL语法,第二个查询使用更现代的ANSI-92 join语法。在功能上它们是等价的。第二种语法更容易阅读,因为它使条件保持在连接表附近。多个连接更加明显。

有关详细信息,请参阅this question

答案 1 :(得分:1)

是的,两个查询都会给出相同的结果。第二个使用显式连接,是推荐的连接。

至于效率。大多数数据库都会优化同一个执行计划的查询,但很少有数据库可以更好地优化第二个。