繁体   English   中英

使用“JOIN”和“WHERE”有什么区别?

[英]What is the difference between using “JOIN” and “WHERE”?

我有两个 SQL 查询,一个是 WHERE,一个是 JOIN。

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

这两个查询有什么不同吗? 如果它们相同,使用哪个更有效?

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

有关更多详细信息,请参阅此问题

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM