例如,假设我有以下两个表:
表格1:
Id
----
1
2
表2:
Month
------
Jan
Feb
我想使用 SQL 查询将它们组合起来以形成以下输出:
Id Month
---- -------
1 Jan
1 Feb
2 Jan
2 Feb
有没有办法使用单个查询来做到这一点?
它被称为笛卡尔积,如果您不指定连接条件,就会发生这种情况。不过要小心!
SELECT ids.Id, months.Month
FROM ids, months
正确答案是“交叉连接”:
select *
from t1 cross join j2
交叉连接没有“on”子句。您可以只使用逗号来做同样的事情,但这是一种古老的(希望有一天会被弃用)的 SQL 语法。交叉连接是正确的方法。
您必须在这两个表之间进行外部连接