我最近try 了涉及INNER JOIN
和CROSS JOIN
的MySQL查询,这两个查询都没有指定任何条件.令人惊讶的是,这两个查询对我的数据集产生了相同的结果.
SELECT * FROM untitled_table INNER JOIN untitled_table2;
SELECT * FROM untitled_table CROSS JOIN untitled_table2;
我观察到,CROSS JOIN
和INNER JOIN
都可以在没有任何条件的情况下执行,并且它们仍然会产生相同的结果.更有趣的是,当我在没有条件的情况下运行INNER JOIN
或在有条件的情况下运行CROSS JOIN
时,MySQL工作台不会抛出任何错误.
在没有条件的情况下使用时,这两种连接类型之间有什么根本区别吗?
如果没有区别,为什么MySQL有两个关键字来表示似乎相同的操作?
此外,当我将条件应用于CROSS JOIN
和INNER JOIN
时,它们仍然产生匹配的结果.
为什么这些看似不同的联接类型在此场景中的行为相似?