不带 ON 条件的 MySQL JOIN 查询
在 MySQL 中,JOIN 查询并不严格要求 ON 条件。这与 ANSI 标准和许多其他数据库不同。
交叉联接
如果没有 ON 条件,JOIN 将被解释为交叉联接。此操作生成笛卡尔积,从而生成一组记录,其中包含连接表中行的所有可能组合。例如,两个分别有 3 行和 4 行的表之间的交叉联接将生成 12 行。
显式使用交叉联接
建议使用 CROSS JOIN为了清楚起见,显式执行交叉连接时的关键字:
SELECT * FROM A CROSS JOIN B;
INNER JOIN 与 Cross Join
JOIN 查询中缺少 ON 条件实际上使其相当于没有条件的 INNER JOIN。这对于查找表之间的所有匹配行非常有用,类似于 INNER JOIN。
左外连接和右外连接
对于 LEFT 和 RIGHT OUTER JOIN,ON条件是强制性的,因为这些类型的联接需要指定的条件来进行行匹配。因此,不存在 ON 条件与它们无关。
以上是当省略 ON 条件时,MySQL JOIN 查询会发生什么?的详细内容。更多信息请关注PHP中文网其他相关文章!