如何从MySQL数据库中选择特定记录

时间:2019-11-14 06:38:25

标签: mysql codeigniter

我有三张桌子的学生记录:
record of students
课程记录:
record of courses
地图学生和课程:
Map student and course

我想从table std_course获取记录,其中student1,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_idstd_id

1,2,3

3 个答案:

答案 0 :(得分:1)

您可以使用sum()select casestd_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