2012-02-06 9 views
0

私はTeacherPINを含むテーブル教師とTeacherPINを含むテーブルStudentを持っています。アイデアは、教師に一定量の学生が含まれていることです。MySQLは、コレクションに存在する最大量を照会します。

私は多くの生徒を持つ先生を見つけることが任されています。私は私が必要以上に複雑なこの方法を作ってるんだと確信しているが、私は今しばらくの間それをしてきたし、誰かが私をプッシュすることができ期待しています

select t.TeacherPIN, count(s.TeacherPIN) 
from Teacher t, Student s 
where t.TeacherPIN = s.TeacherPIN 
    and ((select count(s1.TeacherPIN) from Student s1 where s1.TeacherPIN = t.TeacherPIN) >= 
    (select count(s2.TeacherPIN) from Student s2 where s2.TeacherPIN = (select t1.TeacherPIN from Teacher t1))); 

:私は現在、クエリを使用しています正しい方向。

ありがとうございます!

答えて

3

は、学生の最大数(おそらく多くの)ただ1人の教師を見つけるには:

SELECT TeacherPIN 
    , COUNT(*) AS NumberOfStudents 
FROM Student 
GROUP BY TeacherPIN 
ORDER BY NumberOfStudents DESC 
LIMIT 1 

それらのすべてを見つけるには:トリックをした

SELECT TeacherPIN 
    , COUNT(*) AS NumberOfStudents 
FROM Student 
GROUP BY TeacherPIN 
HAVING COUNT(*) = 
     (SELECT COUNT(*) AS NumberOfStudents 
     FROM Student 
     GROUP BY TeacherPIN 
     ORDER BY NumberOfStudents DESC 
     LIMIT 1 
     ) 
+0

を!助けてくれてありがとう! – NSchulze

関連する問題