我需要将记录插入例如表1通过为一个参考表中的每个记录创建表中每个现有记录的新实例,例如参考表1.
所以,例如......
表1
ID = 1, Name = John, Ref Table 1 ID = null
参考表1
ID = 1, Name = Grade 1
ID = 2, Name = Grade 2
来自SQL的结果 表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记录重复它。
由于
答案 0 :(得分:0)
尝试这样的事情:
为插入结果创建表格:
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)
);
执行插入查询:
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)
答案 1 :(得分:0)
也许我错过了什么,但为什么不做呢:
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
最后,只需选择所需的列。