我有两个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
这两个查询是否存在差异?如果它们相同,哪一个使用效率更高?
答案 0 :(得分:1)
您的第一个查询使用ANSI-89 SQL语法,第二个查询使用更现代的ANSI-92 join
语法。在功能上它们是等价的。第二种语法更容易阅读,因为它使条件保持在连接表附近。多个连接更加明显。
有关详细信息,请参阅this question。
答案 1 :(得分:1)
是的,两个查询都会给出相同的结果。第二个使用显式连接,是推荐的连接。
至于效率。大多数数据库都会优化同一个执行计划的查询,但很少有数据库可以更好地优化第二个。