mysql - 如何在没有 ON 条件的情况下使用 mysql JOIN?

标签 mysql join left-join inner-join right-join

是否可以在没有 ON 语句的情况下编写连接查询?以及这些连接有何不同 LEFT JOIN, RIGHT JOIN 工作原理。

最佳答案

MySQL documentation涵盖这个主题。

这里有一个概要。当使用 joininner 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/

相关文章:

mysql - 对不属于表的元素进行排序

mysql - 使用 SSIS 将 SQL Server 表移动到特定的 MySQL 文件夹

R:自动连接合并后创建的带有后缀的变量

mysql - 连接表并进行计数操作 - MySQL

mysql - 错误 (1142) 使用 mysqldump 在 session_variables 表上拒绝 SELECT 命令

php - 使用 php mysql 显示外键值

MySQL:加入联合表

MySql Join 给我留下了一张空表

MySQL:为什么 GROUP_CONCAT 在我的多连接查询中丢失行?

php - 代码点火器。从数据库中获取3个表中的值(多对多)