合并两个表时需要SQL帮助

时间:2018-09-11 15:00:57

标签: sql merge

我在[表1]中有一个[日期]列,在[表2]中有一个[动作]列

[Table1]看起来像:

Date
----
2018-01-01
2018-01-02
...
2018-02-28
2018-03-01
...
2018-12-31

[Table2]看起来像:

Actions
-------
Action1
Action2
Action3
...

我想创建一个[Table3]看起来像这样:

Date       | Actions 
--------------------
2018-01-01 | Action1
2018-01-02 | Action1
...
2018-02-28 | Action1
2018-03-01 | Action1
...
2018-12-31 | Action1
2018-01-01 | Action2
2018-01-02 | Action2
...
2018-02-28 | Action2
2018-03-01 | Action2
...
2018-12-31 | Action2
2018-01-01 | Action3
2018-01-02 | Action3
...
2018-02-28 | Action3
2018-03-01 | Action3
...
2018-12-31 | Action3
...

换句话说,要在所有日期中分配所有操作。是否有SQL命令可以执行此操作?谢谢。

2 个答案:

答案 0 :(得分:3)

您似乎想要笛卡尔积。在SQL中,您可以使用CROSS JOIN

select t1.date, t2.action
from t1 cross join
     t2
order by t2.action, t1.date;

如何将其保存到表中取决于您使用的数据库。通常它将是create table table3 as select . . .select . . . into table3 from . . .

答案 1 :(得分:0)

下面的查询还将给出笛卡尔积的输出

SELECT * FROM table1,table2