我目前正在尝试运行一个查询,该查询将显示所有相互关联的表。我没有制作表格设计。所以我在制作时遇到了一些麻烦:不清楚 office_hours
表与 schedule
表的关联方式?总体而言,我如何才能正确显示通过查询关联的所有表?
SELECT *
FROM schedule
INNER JOIN semester ON schedule.semester_id = semester.id
INNER JOIN office_hours ON office_hours.id = schedule.???
最佳答案
我认为表 schedule
中的 ID
只是一个 auto_increment
列和加入 schedule
的正确方法office_hours
是 office_hours.schedule_id = schedule.semester_id
。
select *
from schedule
inner join semester
on schedule.semester_id = semester.id
inner join office_hours
on office_hours.schedule_id = schedule.semester_id
更新 1
select *
from schedule
inner join semester
on schedule.semester_id = semester.id
inner join office_hours
on office_hours.schedule_id = schedule.semester_id
INNER JOIN faculty
ON faculty.id = office_hours.faculty_id
INNER JOIN Section
ON Section.faculty_ID = faculty.id AND
Section.Schedule_ID = Schedule.ID
INNER JOIN class
ON Class.ID = Section.Class_ID
INNER JOIN major_class_br
ON major_class_br.class_ID = Class.ID
INNER JOIN major_minor
ON major_class_br.major_minor_id = major_minor.ID
假定所有 ID
或 链接列 都存在于每个表中,这就是使用 INNER JOIN
的原因。否则,使用 LEFT JOIN
。
关于mysql - 查询相关表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13252509/