合并两个表时需要SQL帮助

问题描述 投票:0回答:2

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

[表1]看起来像:

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

[表2]看起来像:

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命令来做到这一点?谢谢。

sql merge
2个回答
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 . . .


0
投票

下面的查询也会给出笛卡尔积产品

SELECT * FROM table1,table2
© www.soinside.com 2019 - 2024. All rights reserved.