揭开 MySQL JOIN 无 ON 条件的神秘面纱
需要合并多个表中的数据而无需合并的情况并不少见。在 JOIN 查询中显式指定 ON 条件。在这种情况下,MySQL 提供了不同于传统 ANSI 标准的独特连接功能。了解这种变体可以让开发人员有效地利用 MySQL JOIN 机制的强大功能。
选择交叉联接
当使用不带 ON 子句的 JOIN 或 INNER JOIN 时,MySQL进行交叉连接操作。此操作与其他数据库和 ANSI 标准显着不同,因为它生成笛卡尔积。简而言之,它从每个指定的表中生成一行的所有可能组合。
示例:
考虑两个表,A 和 B,每个表有 3 个和 4 个行,分别。这些表之间的交叉联接将产生 12 行,每行代表 A 和 B 中唯一的一对行。
交叉联接最佳实践
虽然交叉联接可以它们在某些情况下很有用,因此明智地使用它们至关重要。强烈建议使用 CROSS JOIN 语法来显式指示交叉连接操作,而不是依赖于缺少 ON 子句。这可以提高清晰度并避免潜在的混乱。
右外连接和左外连接
与交叉连接相比,右外连接和左外连接需要 ON 子句才能正确运行。因此,关于不带 ON 条件的连接的讨论不适用于这些类型的连接。
以上是MySQL 如何处理没有 ON 子句的 JOIN?的详细内容。更多信息请关注PHP中文网其他相关文章!