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脚本吗?