mysql中使用3个表进行内连接inner join

时间:2017-07-28
本文向大家介绍mysql中使用3个表进行内连接的实例,需要的朋友可以参考一下。

我想从内部联接的更多表中选择数据。

这些是我的表。

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

我想写一份声明,说明学生去过的考试,成绩和日期。按日期排序。

这是我的发言。它运行,但我想确保我正确地做到了。

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

正确的陈述应该是:

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

根据定义的外键关系,将表引用到其他表。如果希望数据显示为查询,则应正确引用ID。因此,您应该将id引用到表中的正确外键,而不是仅仅引用未定义正确关系的id