首页 > 解决方案 > 使用一个查询的结果来过滤下一个

问题描述

我有 3 个表 UserInfo、Class 和 ClassAttendance。

我正在尝试组合两个查询,以便我可以更新我的用户信息

我的第一个查询在课程表中搜索日期范围内的课程

Select ClassID from Class 
Where ClassDate > '04/23/2018'

我的第二个查询根据成员参加课程的次数更新信息

update UserInfo 
SET ParticipationStatus = 'standard participant'
where (
select count(MemberID)
from ClassAttendance
WHERE UserInfo.MemberID=ClassAttendance.MemberID

) >= 4

我假设使用 Join 将是最好的方法,但我无法弄清楚

标签: sqloracleoracle-apex

解决方案


你可以试试pl/sql:

begin

for x in (select ClassID from Class 
                 where ClassDate > '04/23/2018')
loop
   for y in (select MemberID, count(ClassId) as Member_count from ClassAttendance
                    where ClassId = x.Class group by MemberId having count(ClassId) >=4 )
   loop
        update UserInfo SET ParticipationStatus = 'standard participant' where MemberID = y.MemberId;
   end loop;
end loop;

end;

推荐阅读