Sql 将文本文件中的动态和静态数据混合插入到表中

Sql 将文本文件中的动态和静态数据混合插入到表中,sql,postgresql,select,sql-insert,Sql,Postgresql,Select,Sql Insert,我有两张表,如下所示 条件(文本文件存储为表) 观察 Id subject_id START_DATE END_DATE 1 D1 21/01/2007 21/01/2017 1 D2 23/05/1998 23/05/2008 1 D3 13/04/2017 13/04/2020 我希望我的输出如下。如您所见,除了来自文本文件(存储为条件表)的subject\u id列之外,

我有两张表,如下所示

条件(文本文件存储为表)

观察

Id   subject_id     START_DATE   END_DATE
1      D1           21/01/2007   21/01/2017
1      D2           23/05/1998   23/05/2008
1      D3           13/04/2017   13/04/2020
我希望我的输出如下。如您所见,除了来自文本文件(存储为条件表)的
subject\u id
列之外,其余的
(id、START\u DATE、END\u DATE)
列都是静态的和相同的

Id   subject_id     START_DATE   END_DATE
1      D1           21/01/2007   21/01/2017
1      D2           23/05/1998   23/05/2008
1      D3           13/04/2017   13/04/2020
2      A1           01/01/2000   01/01/2010 
2      A2           01/01/2000   01/01/2010 
2      A3           01/01/2000   01/01/2010 
2      A4           01/01/2000   01/01/2010
这是我尝试过的,但无法获得预期的输出,因为观察表必须使用
START\u DATE
END\u DATE

insert into observation (Id,subject_id,start_date,end_date)
select '2',subject_id,'01/01/2000','01/01/2010' from condition;
可以帮我吗?

尝试使用工会:

SELECT Id, subject_id, START_DATE, END_DATE FROM Observation
UNION ALL
SELECT '2', subject_id, '01/01/2000', '01/01/2010' FROM condition
ORDER BY Id, subject_id;
如果您确实希望观察表看起来像您预期的输出,那么您当前的插入实际上是正确的。

尝试使用并集:

SELECT Id, subject_id, START_DATE, END_DATE FROM Observation
UNION ALL
SELECT '2', subject_id, '01/01/2000', '01/01/2010' FROM condition
ORDER BY Id, subject_id;

如果您真的希望观察表看起来像您预期的输出,那么您当前的插入实际上是正确的。

我在“distinct”行1处或附近遇到类似的错误
错误:语法错误:选择“2”,distinct person\u id,“01/01/2000”,“01/01/2010”F^那么你没有运行我的代码,因为我从来没有在任何地方使用过
DISTINCT
。好吧,问题是有时候主题ID可能是重复的。所以我用了Distinct你能告诉我在这种情况下如何使用Distinct吗?我知道你告诉过我的insert查询可以正常工作,但是当存在重复项时,即使这样也会引发错误我不明白你想用distinct做什么,但是语法是错误的。您可能想在这一点上打开一个新问题。我得到一个类似以下的错误
错误:语法错误位于或接近“distinct”行1:选择“2”,distinct person\u id,“01/01/2000”,“01/01/2010”F^那么你没有运行我的代码,因为我从来没有在任何地方使用过
DISTINCT
。好吧,问题是有时候主题ID可能是重复的。所以我用了Distinct你能告诉我在这种情况下如何使用Distinct吗?我知道你告诉过我的insert查询可以正常工作,但是当存在重复项时,即使这样也会引发错误我不明白你想用distinct做什么,但是语法是错误的。此时,您可能想提出一个新问题。