0

私は2つのテーブルを持っています。

  1. rollno、batchids としてデータを持つ学生テーブル。
  2. batchid、courseid を持つバッチ テーブル。

学生テーブルのバッチ ID 列には、学生が登録されている可能性のあるさまざまなコースのカンマ区切りのバッチ ID が含まれています。誰かが私を助けることができますか?

ここまでたどり着きました

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

これにより、ID「1」のコースの学生のリストが表示されます。

4

2 に答える 2

0

あなたのデータを正しく理解していれば、次のようなものがあります。

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

バッチ ID: ('1,2,3', 1), ('1,2,3', 2), '1,2,3', 3)

これが正しいと仮定すると、カンマ区切りのリストは、batchids テーブルへの単なるキーです。したがって、各コースのカウントを取得するには、結合を行います。

select courseid, count(*)
from batches b join
     students s
     on b.studentid = s.studentid
group by courseid
于 2012-12-01T17:55:12.587 に答える
0

count() を使用します。

Select count(*) 
from students 
where batchids in (select id from batches where courseid=1)
于 2012-12-01T08:39:43.280 に答える