1

我目前正在尝试运行一个查询,该查询将显示所有相互关联的表。我没有做桌子设计。所以我在制作时遇到了一些麻烦:不清楚office_hourstable 与 table的相关性如何schedule?总体而言,如何正确显示通过查询关联的所有表?

SELECT * 
FROM schedule
INNER JOIN semester ON schedule.semester_id = semester.id
INNER JOIN office_hours ON office_hours.id = schedule.???
4

3 回答 3

3

我认为IDfrom tableschedule只是一auto_increment列,正确的加入方式schedule是.office_hoursoffice_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.

于 2012-11-06T13:56:26.330 回答
0

您必须使用两个表中的 id:

...
inner join office_hours on office_hours.schedule_id = schedule.id;
于 2012-11-06T13:56:54.493 回答
0

试试这个:

SELECT *
FROM 
SCHEDULE 
INNER JOIN semester 
ON schedule.semester_id = semester.id
INNER JOIN office_hours
ON office_hours.schedule_id = schedule.id
于 2012-11-06T14:00:53.463 回答