【问题标题】:SQL help is needed in merging two tables合并两个表需要 SQL 帮助
【发布时间】:2018-09-11 15:00:57
【问题描述】:

我在 [Table1] 中有一个 [Date] 列,在 [Table2] 中有一个 [Actions] 列

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

【问题讨论】:

  • SELECT * FROM tab1,tab2

标签: sql merge


【解决方案1】:

您似乎想要一个笛卡尔积。在 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 . . .

【讨论】:

    【解决方案2】:

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

    SELECT * FROM table1,table2
    

    【讨论】:

      猜你喜欢
      • 2011-12-06
      • 2023-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-03
      相关资源
      最近更新 更多