输入来自 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>
我有 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>