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