我找到了以下查询,如果有人可以帮助向我解释这意味着什么,我将不胜感激。
select * from table1, table2
原文由 Asiri Dissanayaka 发布,翻译遵循 CC BY-SA 4.0 许可协议
我找到了以下查询,如果有人可以帮助向我解释这意味着什么,我将不胜感激。
select * from table1, table2
原文由 Asiri Dissanayaka 发布,翻译遵循 CC BY-SA 4.0 许可协议
711 阅读
1 回答402 阅读
这称为
CROSS JOIN
但在FROM
子句中使用带有,
的旧语法。我的建议是不要使用旧语法,在这里坚持使用JOIN
。它产生一个笛卡尔积,因此结果集中的行数将是来自
table1
的行数乘以来自table2
的行数(假设在WHERE
子句)。它有效地将来自 --- 的每一行与来自table1
的行table2
。下面的查询是等价的,但明确
JOIN
操作将数据检索的约束逻辑(通常放在WHERE
子句中)与连接存储在不同表中的相关数据的逻辑(在FROM
子句):考虑一个示例,其中
table1
有 8 行,而table2
有 5 行。在输出中,您将获得 40 行(8 行 * 5 行),因为它将来自两个源(表)的所有行配对。