如何使包含两个父表的内部联接的SQL查询?

时间:2019-05-15 19:50:17

标签: mysql

我正在开发一个数据库,其中包含描述课程表的表(例如在大学或学校时)。 我已经学习MySQL一段时间了,所以我无法完全理解我所做的事情。 这是ERR图

enter image description here

请查看group_division表。创建该表是为了解决该问题 一组可以分为一半,每个子组不会在相同的受众群体中。 因此,一位老师将学习一个小组。 现在,我在创建查询以获取

时遇到了麻烦
lesson_params.idLesson , lessons_params.time_lesson , 
subjects.Name , audiences.idAudience , teachers.Surname . 

如您所见,有两个父表-shedule和group_division。 那么,如何使查询请求上面的数据呢? 看起来像

SELECT lesson_params.idLesson , lessons_params.time_lesson , subjects.Name , 
audiences.idAudience , teachers.Surname FROM

shedule INNER JOIN group_division ON group_division.fk_idShedule = shedule.idShedule
        INNER JOIN subjects ON shedule.fk_subject = subjects.idSubject
        INNER JOIN lesson_params ON shedule.fk_lessons_params = lesson_params.time_lesson
#and,now I need match group_division foreign keys(except fk_idShedule) to its parent tables

我可以获取group_division外键值

SELECT lesson_params.idLesson , lesson_params.time_lesson , subjects.Name , 
group_division.fk_idTeacher , group_division.fk_idAudience FROM
shedule  
    INNER JOIN group_division ON group_division.fk_idShedule = shedule.idShedule
    INNER JOIN subjects ON shedule.fk_subject = subjects.idSubject
    INNER JOIN lesson_params ON shedule.fk_lesson_params lesson_params.time_lesson;

结果

|idLesson | time_lesson | Name | fk_Teacher | fk_idAudience|

有什么建议吗?但是,请只重制表结构)

1 个答案:

答案 0 :(得分:0)

也许我遗漏了一些东西,但是在我看来,您可以再添加两个连接:

INNER JOIN teachers ON teachers.idTeacher = group_division.fk_idTeacher
INNER JOIN audiences ON audiences.idAudience = group_division.fk_idAudience

也许您认为每个INNER JOIN都必须引用shedule中的一列,因为它是FROM子句中的第一个表。但是事实并非如此。