有关MySQL不同联接表的问题

时间:2018-07-27 10:52:33

标签: mysql sql join

SELECT * FROM Training_Registration registration
LEFT OUTER JOIN Training_Segment segment
    ON registration.referenceId = segment.id
LEFT OUTER JOIN Training_Module module
    ON segment.moduleId = module.id
    OR registration.referenceId = module.id 
INNER JOIN Training_Course course
    ON module.courseId = course.id 
    OR registration.referenceId = course.id 
WHERE registration.traineeId = @traineeId
AND registration.registrationDate >= @startDate
AND course.courseTemplateId = @courseTemplateId
;

for this 4 table relationship. 
Registration FK > Segment , Module , Course
Segment FK > Module
Module FK > Course
Course FK > CourseTemplate

我已经得到了想要的结果,但是我无法解释这里发生了什么。我改掉左或左也可以得到结果。最后一个连接是left或right或其他也可以得到结果的

有人可以帮我解释这个MySQL脚本吗?

0 个答案:

没有答案