[英]Insert a row with two fields from two different SELECT queries?
I have the following PostgreSQL database laid out: 我布置了以下PostgreSQL数据库:
Now, I have trouble forming an insertion statement. 现在,我很难形成插入语句。 I want to insert rows to
DiscussionParticipation
so that for each Discussion
there would be two entries: 我想向
DiscussionParticipation
插入行,以便对于每次Discussion
都将有两个条目:
One for the User
who owns the related Activity
一个给拥有相关
Activity
的User
One for the User
who owns the Response
related to the Activity
一个给拥有与
Activity
相关的Response
的User
For example, if there were the following entries: 例如,如果存在以下条目:
Discussion:
id: 1 | Activity_id: 1
Activity:
id: 1 | User_id: 1
Response:
id: 1 | Activity_id: 1 | User_id: 2
User:
id: 1 | username: Adam
id: 2 | username: Bill
In other words: User 'Adam' has created an activity in which user 'Bill' has created a response to. 换句话说:用户“亚当”创建了一个活动,用户“比尔”创建了一个响应。 There exists a related Discussion for the activity.
该活动存在相关的讨论。
Now, I'd like to add these two rows to the DiscussionParticipation
table: 现在,我想将这两行添加到
DiscussionParticipation
表中:
DiscussionParticipation:
User_id: 1 | Discussion_id: 1
User_id: 2 | Discussion_id: 1
How do I form this INSERT? 如何形成此INSERT?
A list of users can participate activity of discussion union a list of users can participate response of discussion. 用户列表可以参与讨论活动的联合 ,用户列表可以参与讨论的响应。
insert into DiscussionParticipation (User_id, Discussion_id) (
select a.User_id as User_id, d.id as Discussion_id
from Discussion d
inner join Activity a on (a.id = d.Activity_id)
union
select r.User_id as User_id, d.id as Discussion_id
from Discussion d
inner join Response r on (r.Activity_id = d.Activity_id)
);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.