这个问题在这里已经有了答案:
Inner join vs Where
(19 个回答)
7年前关闭。
有什么区别吗
SELECT *
FROM TABLE_A a
JOIN TABLE_B b
ON a.propertyA = b.propertyA
和查询
SELECT * from TABLE_A a, TABLE_B b where a.propertyA=b.propertyA.
最佳答案
INNER JOIN
是您在第一个语法中使用的 ANSI (SQL-92) 语法。它通常被认为更具可读性,尤其是当您加入大量表时。WHERE syntax
(SQL-89) 更面向关系模型。两个表 JOIN'ed 的结果是应用过滤器的表的笛卡尔乘积,该过滤器仅选择连接列匹配的那些行。
使用 WHERE 语法更容易看到这一点。
我宁愿去 ANSI
输入 join 因为如果你知道如何省略 ON
子句,如果省略 where
上的条件,则会生成错误,而旧类型的连接子句不会产生错误信息,因此会生成笛卡尔积。
关于sql - 这些连接之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12345965/