Jointure interne avec 3 tables dans mysql

Je veux sélectionner des données de plusieurs tables avec Inner join.

Ce sont mes tables.

Student (studentId, firstName, lastname)
Exam (examId, name, date)
Grade (gradeId, fk_studentId, fk_examId, grade)

Je veux écrire une déclaration qui montre l'examen, le grade et la date de tous les étudiants ont été. Tri après jour.

C'est ma déclaration. Il fonctionne, mais je veux m'assurer que je le fais correctement.

SELECT
  student.firstname,
  student.lastname,
  exam.name,
  exam.date,
  grade.grade
FROM grade
  INNER JOIN student
    ON student.studentId = grade.gradeId
  INNER JOIN exam
    ON exam.examId = grade.gradeId
ORDER BY exam.date
  • et quel est le problème?
  • il semble étrange que la colonne gradeID est connecté à studentID? mais si vous mettez de la structure de cette façon et il renvoyer les résultats escomptés alors je suppose que c'est bien ...
  • Oui, vous le faites correctement. Pas beaucoup de point à la question de savoir si cela fonctionne et donne des résultats attendus droit?
  • Je suis nouveau sur le serveur mysql, et vous voulez être sûr que im faire en droit. Beaucoup de fois j'ai fait quelques déclarations qui a obtenu le droit de chose. Mais ce n'était pas la bonne méthode.
  • pour moi, il semble que les étudiants.studendId = grade.fk_studentId et d'Examen.examId = grade.fk_examId
  • Oui vous avez raison stackoverflow.com/questions/14673338/...
  • poster une description de la table dans ur question. utiliser la requête describe grade

InformationsquelleAutor Zincktest | 2013-04-15