是否可以在没有 ON
语句的情况下编写连接查询?以及这些连接有何不同 LEFT JOIN, RIGHT JOIN
工作原理。
最佳答案
MySQL documentation涵盖这个主题。
这里有一个概要。当使用 join
或 inner join
时,on
条件是可选的。这不同于 ANSI 标准,也不同于几乎任何其他数据库。效果是一个cross join
。同样,您可以将 on
子句与 cross join
一起使用,这也与标准 SQL 不同。
交叉连接创建一个笛卡尔积,即第一个表中的 1 行和第二个表中的 1 行的所有可能组合。具有三行('a'、'b'和'c')的表和具有四行(例如 1、2、3、4)的表的交叉联接将有 12 行。
在实践中,如果要进行交叉连接,则使用交叉连接
:
from A cross join B
比:
from A, B
和:
from A join B -- with no on clause
右外连接或左外连接需要 on
子句,因此讨论与它们无关。
关于mysql - 如何在没有 ON 条件的情况下使用 mysql JOIN?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16470942/