Inner join with 3 tables in mysql Inner join with 3 tables in mysql database database

Inner join with 3 tables in mysql


Almost correctly.. Look at the joins, you are referring the wrong fields

SELECT student.firstname,       student.lastname,       exam.name,       exam.date,       grade.grade  FROM grade INNER JOIN student ON student.studentId = grade.fk_studentId INNER JOIN exam ON exam.examId = grade.fk_examId ORDER BY exam.date


The correct statement should be :

SELECT  student.firstname,  student.lastname,  exam.name,  exam.date,  grade.gradeFROM grade  INNER JOIN student    ON student.studentId = grade.fk_studentId  INNER JOIN exam    ON exam.examId = grade.fk_examIdORDER BY exam.date

A table is refered to other on the basis of the foreign key relationship defined. You should refer the ids properly if you wish the data to show as queried. So you should refer the id's to the proper foreign keys in the table rather than just on the id which doesn't define a proper relation


SELECT  student.firstname,  student.lastname,  exam.name,  exam.date,  grade.gradeFROM grade INNER JOIN student   ON student.studentId = grade.fk_studentId INNER JOIN exam   ON exam.examId = grade.fk_examId GROUP BY grade.gradeId ORDER BY exam.date