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