如何连接两个表,以便一个行的所有行都复制到另一个表的所有行?

时间:2012-06-26 18:32:02

标签: sql database join

例如,假设我有以下两个表:

表1:

Id
----
1
2

表2:

Month
------
Jan
Feb

我想使用SQL查询组合它们以形成以下输出:

Id        Month
----      -------
1         Jan
1         Feb
2         Jan
2         Feb

有没有办法使用单个查询执行此操作?

3 个答案:

答案 0 :(得分:4)

它被称为笛卡尔积,如果您没有指定连接条件,它将会出现。但要小心!

SELECT ids.Id, months.Month
FROM ids, months

答案 1 :(得分:2)

正确答案是“交叉加入”:

select *
from t1 cross join j2

交叉连接没有“on”子句。你可以使用逗号做同样的事情,但这是古老的(希望有一天不推荐使用)SQL语法。交叉连接是正确的方法。

答案 2 :(得分:0)

你必须在这两个表之间进行外连接