输入来自 Table(T2) 的所有数据插入到 Table(T1) 中,针对每一行 T1

Enter all data from Table(T2) insert in Table(T1) against each row T1

我有 T1 Table 有 3 列日期、ID、名称 我还有其他 table T2 有 ID、名称 我想把 T2 的所有数据放在 T1 agt 每个日期这样

           T1                               T2               Required output of T1
DATE          ID       NAME     || ID           NAME   ||DATE        ID    NAME 
02/16/21                        || 100          Shaun  ||02/16/21    100   Shaun
02/15/21                        || 101          Alex   ||02/16/21    101   Alex
02/14/21                        || 102          Scott  ||02/16/21    102   Scott
                                                  

它将为每个日期重复,请任何人帮助并在 T1 中提交

对我来说,您似乎想交叉连接这两个table。

目前,你有这个:

SQL> select * from t1;

DATUM              ID NAME
---------- ---------- --------------------
02/16/2021
02/15/2021
02/14/2021

SQL> select * from t2;

        ID NAME
---------- -----
       100 Shaun
       101 Alex
       102 Scott

你想要的输出:

SQL> select a.datum, b.id, b.name
  2  from t1 a cross join t2 b
  3  order by a.datum, b.id;

DATUM              ID NAME
---------- ---------- -----
02/14/2021        100 Shaun
02/14/2021        101 Alex
02/14/2021        102 Scott
02/15/2021        100 Shaun
02/15/2021        101 Alex
02/15/2021        102 Scott
02/16/2021        100 Shaun
02/16/2021        101 Alex
02/16/2021        102 Scott

9 rows selected.

SQL>

如果您想用这样的结果填充 t1 table,我认为最简单的选择是分两步完成:insert + delete:

  • 交叉连接的第一个插入结果
  • 然后删除 id 为空的行

像这样:

SQL> insert into t1 (datum, id, name)
  2  select a.datum, b.id, b.name
  3  from t1 a cross join t2 b;

9 rows created.

SQL> delete from t1 where id is null;

3 rows deleted.

SQL> select * from t1;

DATUM              ID NAME
---------- ---------- --------------------
02/16/2021        100 Shaun
02/16/2021        101 Alex
02/16/2021        102 Scott
02/15/2021        100 Shaun
02/15/2021        101 Alex
02/15/2021        102 Scott
02/14/2021        100 Shaun
02/14/2021        101 Alex
02/14/2021        102 Scott

9 rows selected.

SQL>