不带 ON 条件的 MySQL JOIN 查询
问题: MySQL JOIN 查询可以在没有 ON 语句的情况下编写吗?它们与“左”和“右”有何不同JOIN?
答案:
是的,MySQL 允许在没有 ON 条件的情况下编写 JOIN 查询。此行为背离 ANSI SQL 标准和大多数其他数据库。但是,此类查询相当于交叉联接,它创建笛卡尔积,而不是根据常见条件联接行。
当 MySQL 中的 JOIN 或 INNER JOIN 中缺少 ON 子句时,效果是交叉连接。同样,ON 子句可以与 CROSS JOIN 一起使用,以进一步细化连接条件。
与 LEFT 和 RIGHT JOIN 的区别:
LEFT 和 RIGHT JOIN 需要ON 子句指定连接条件。这是因为它们的目的是包括左表或右表中的行,即使另一个表中没有匹配的行。如果没有 ON 子句,它们只会分别返回左表和右表中的行。
实际注意事项:
虽然技术上可以使用 JOIN在 MySQL 中没有 ON 条件的查询,为了清晰起见,通常建议显式使用 CROSS JOIN。首选以下语法:
from A cross join B
超过:
from A, B
或:
from A join B -- with no on clause
以上是MySQL JOIN 查询可以在没有 ON 子句的情况下工作吗?的详细内容。更多信息请关注PHP中文网其他相关文章!