我有2个表格,我想过滤某些条件。
表1 学生
ID名称
1 Del
2标记
3戴夫表2 要求
ID Stud_id要求已提交
1 ---- 1 -------- ------------- REQ1 1
2 ---- -------- 1 ------------- REQ2 0
3 ---- -------- 2 ------------- REQ1 1
4 ---- -------- 2 REQ2 ------------- 1
5 ---- -------- 3 REQ1 ------------- 0
6 ---- 3 -------- Req2 ------------- 0
我需要筛选出已完成要求的学生和那些要求不完整的学生。
输出1:完成要求的学生 ID名称
2马克输出2:要求不完整的学生 ID名称
1 Del
3戴夫
答案 0 :(得分:1)
您可以使用exists
和not exists
执行此操作。完成要求:
select s.*
from students s
where not exists (select 1
from requirements r
where r.stud_id = s.id and r.isSubmitted = 0
);
如果未完成,请改用exists
。
答案 1 :(得分:0)
我希望这会有所帮助
检索完成要求的学生:
select * from student s where s.ID in ((Select stud_id from requirements r
where r.req1=1 and r.req2=1))
检索有不完整要求的学生:
select * from student s where s.ID not in ((Select stud_id from requirements r
where r.req1=1 and r.req2=1))