db2 查询显示在另一个 table 中为每个值重复的记录

db2 query which shows records repeated for each value in another table

我需要将记录插入到例如table 1 通过为引用 table 中的每个记录创建 table 中每个现有记录的新实例,例如参考 table 1.

所以,例如...

Table 1

ID = 1, Name = John, Ref Table 1 ID = null

参考 Table 1

ID = 1, Name = Grade 1
ID = 2, Name = Grade 2

想要SQL的结果 Table 1

ID = 1, Name = John, Ref Table 1 ID = 1
ID = 2, Name = John, Ref Table 1 ID = 2

甚至

ID = 1, Name = John, Ref Table 1 ID = null
ID = 2, Name = John, Ref Table 1 ID = 1
ID = 3, Name = John, Ref Table 1 ID = 2

是否可以使用标准 SQL?

希望在一个查询中获得所有内容,因为目前看来我必须为每个 ref table 1 条记录重复它。

谢谢

尝试这样的事情:

  1. 为插入结果创建 table:

    CREATE TABLE to_insert( ID INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1) ,Name VARCHAR(100) ,Ref_Table1_ID INTEGER ,PRIMARY KEY(ID) ,FOREIGN KEY(Ref_Table1_ID) REFERENCES(ref_table_1) );

  2. 执行插入查询:

    INSERT INTO to_insert(Name, Ref_Table1_ID) SELECT t1.Name, COALESCE(t1.Ref_Table1_ID, rt1.ID) Ref_Table1_ID FROM table_1 t1 FULL OUTER JOIN ref_table_1 rt1 ON (t1.Ref_Table1_ID = rt1.ID)

也许我遗漏了什么,但为什么不这样做:

SELECT * FROM tbl_1, tbl_2

结果将是:

tbl_1.ID    tbl_1.Name  Ref Table ID    tbl_2.ID    tbl_2.Name
1           John                        1           Grade 1
1           John                        2           Grade 2

哪里tbl_1

ID  Name    Ref Table ID
1   John    NULL

和tbl_2

ID  Name
1   Grade 1
2   Grade 2

最后,只有 select 所需的列。