2010-03-20 3 views
0

J'ai deux tables: sujet et étudiant. J'essaie de compter le nombre de sujets inscrits par chaque élève. Comment je fais ça? J'essaie le code ci-dessous mais ça ne donne pas la réponse dont j'ai besoin. S'il vous plaît aider.Aide avec sql query

SELECT COUNT(subject.SUBJECT) , student.IDNO, student.FIRSTNAME, subject.SUBJECT 
FROM student, subject 
GROUP BY subject.SUBJECT 
LIMIT 0 , 30 
+0

Comment les tables ressemblent? – Bjoern

Répondre

1

Vous avez aussi une table d'inscription, n'est-ce pas? résoudre la relation plusieurs-à-plusieurs entre l'étudiant et le sujet. vous pourriez travailler avec ça. par exemple, votre table d'inscription comporte des colonnes StudentID et subjectID, alors vous auriez besoin seulement:

SELECT studentID, COUNT(*) FROM Enrolment GROUP BY studentId; 

ou, pour inclure aussi leurs noms,

SELECT s.firstname, COUNT(*) FROM Enrolment e JOIN student s on e.studentId=s.IDNO GROUP BY e.studentId; 
1

Il vous manque une condition de jointure. Quelque part vous stockez des informations sur le sujet que chaque étudiant prend. Peut-être WHERE subject.student_id = student.id.