我想从table std_course
获取记录,其中student
与1,2,3
一样,使用查询
select course_id from std_course where std_id in (1,2,3) group by course_id
它以course_id
的身分返回我1
,但这里的std_id=4
也反对course_id=1
我需要选择course_id
仅std_id
1,2,3
答案 0 :(得分:1)
您可以使用sum()
和select case
,std_id
上方的3
将是0
select * from (
select sum(case when std_id in (1, 2, 3) then 1 else 0 end) tot
, course_id
from std_course
group by course_id) t1
where t1.tot <= 3
答案 1 :(得分:0)
您可以使用join进行尝试:
select * from std_course left outer join course on course.id= std_course.course_id where std_id <=3
答案 2 :(得分:0)
查询更改后对我有用的查询由@ϻᴇᴛᴀʟ回答是:
select * from ( select sum(case when std_id in (1,2,3) then 1 else -1 end) tot , course_id from std_course group by course_id) t1 where t1.tot = 3