嵌套的sql查询来查找计数

时间:2012-12-01 08:37:30

标签: mysql sql

我有两张桌子。

  1. 学生表,数据为rollno,batchids。
  2. 包含batchid,courseid的批处理表。
  3. 学生表的batchids列包含学生可能注册的各种课程的逗号分隔的批处理。现在我想得到学生的计数。有人能帮助我吗?

    到目前为止,我已经到了

    select * 
    from students 
    where batchids in (select id from batches where courseid=1)
    

    这给了我一个ID为'1'的学生名单。

2 个答案:

答案 0 :(得分:0)

使用count()。

Select count(*) 
from students 
where batchids in (select id from batches where courseid=1)

答案 1 :(得分:0)

如果我正确理解您的数据,您可以使用以下内容:

学生:(s1,'1,2,3')

batchids:('1,2,3',1),('1,2,3',2),'1,2,3',3)

假设这是正确的,逗号分隔列表只是批处理表的一个键。因此,要获得每门课程的计数,请加入:

select courseid, count(*)
from batches b join
     students s
     on b.studentid = s.studentid
group by courseid