我得到了这三张桌子,a和p。 a和s有1:1的关系。但是a到p得到1:x的关系。 我当前的查询仅针对1:0或1:1关系构建。 目前我得到:“ORA-01427:单行子查询返回多行。”如果activity_no有多个resource_id
那么我该如何重做我的查询呢?如果有一个activity_id有两个或更多个resource_id,我想要将所选行复制两次或更多次,具体取决于activity_no有多少resource_id?
我一直在寻找:Oracle, insert multirows from subquery with more than one row但它不起作用。
select s.sub_project_id,
a.activity_no,
(select p.resource_id
from p
where p.project_id = 'PROPSTOT'
and p.activity_seq = a.activity_seq,
from s,
a
where s.sub_project_id = a.sub_project_id
and s.project_id = 'PROPSTOT'
and a.project_id = 'PROPSTOT'
答案 0 :(得分:2)
尝试加入查询中的表格,如下所示:
select s.sub_project_id,
a.activity_no,
p.resource_id
from s
join a on s.sub_project_id = a.sub_project_id and a.project_id = 'PROPSTOT'
left join p on p.project_id = 'PROPSTOT' and p.activity_seq = a.activity_seq
where s.project_id = 'PROPSTOT'
答案 1 :(得分:1)
我不清楚你究竟想要做什么,但从你的描述中听起来你似乎想要一个加入:
select s.sub_project_id,
a.activity_no,
p.resource_id
from s
join a on s.sub_project_id = a.sub_project_id and a.project_id = s.project_id
left outer join p on p.activity_seq = a.activity_seq
where s.project_id = 'PROPSTOT'