sql - 使用一个查询的结果来过滤下一个
问题描述
我有 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 将是最好的方法,但我无法弄清楚
解决方案
你可以试试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;
推荐阅读
- django - 如何面对无效过滤器:自定义 django 模板标签中的“has_group”错误
- python - python:从字符串中解析括号中的子字符串
- c# - 在基类中具有泛型属性并尝试在派生类中覆盖时出现类型不匹配错误
- math - 计算对象的变换,使其与另一个对齐
- react-native - 使用 react-native 创建了一个应用安装包大尺寸
- kerberos - Kylo 安全实施,Kylo 中的 OpenLDAP 实施与 Kerberos
- java - elasticsearch如何按数组中的重复项进行分组而没有不同
- python - 标记设置为像素时如何更改图例中的标记大小/比例
- python - 类的 Python 数据结构随年份变化
- amazon-web-services - 尝试访问api网关中的资源时如何调用cognito登录页面