世界!
关于MySQL的教科书部分我读过:
“假设您使用CROSS JOIN
连接两个表。结果集将包括两个表中的所有行,其中结果集中的每一行都是第一个表中的行与第二个表中的行的组合table。当你在连接表之间没有关系时会发生这种情况。“
因此,如果我理解正确,则上述意思是:如果表格具有关系CROSS JOIN
,则不会将table_one
中的每一行与table_two
中的每一行合并。
但我的测试表有关系(外键)。
table_one
有用户的数据,table_two
有订单数据。
user_id
的 table_two
与来自id
table_one
相关
但是SELECT * FROM table_one CROSS JOIN table_two
继续组合两个表中的每一行。为什么呢?
感谢您的时间和帮助!
答案 0 :(得分:2)
文档意味着当两个表之间没有关系时,通常使用CROSS JOIN
。
CROSS JOIN
总是生成两个表/子查询的笛卡尔积,无论是否存在关系。
请注意,如果任一表为空,则结果集也为空。