经过一天的努力尝试使此查询正常工作之后,我不得不求助。 这是我第一次尝试加入JOIN,所以请轻柔地对待我;)
我有一个查询,该查询根据6个表中的数据生成时间表。
我的查询是:
SELECT
course.CourseName,
course.CourseID,
timetablepaeriods.PeriodName,
subject.SubjectName,
Subject.SubjectColour,
Room.RoomName
FROM
TimetablePeriods
LEFT JOIN Timetable ON
TimetablePeriods.PeriodID = Timetable.Period_ID
INNER JOIN Course ON
Timetable.Course_ID = Course.CourseID
INNER JOIN Subject ON
Course.Subject_ID = Subject.SubjectID
INNER JOIN CourseMembership ON
CourseMembership.Course_ID = Course.CourseID
INNER JOIN Room ON
Timetable.Room_ID = Room.RoomID
WHERE CourseMembership.Student_ID = 123
ORDER BY TimetablePeriods.SortOrder ASC
这将返回所有匹配的结果,但不返回TimetablePeriods中有值的行,而没有其他值。
CourseName | CourseID | PeriodName | SubjectName | etc . . .
-----------|----------|------------|-------------|
y7Ma3 | 19 | MonP1 | Maths |
y7Hist4 | 16 | MonP2 | History |
y7Geog1 | 30 | MonP3 | Geography |
y7Eng3 | 28 | MonP5 | English |
我期望MonP4的行具有空白值。 它存在于数据库中,如果我对一个对MonP5有空白的学生运行相同的查询,则会跳过该查询。
正如我在顶部所说的,这是我第一次尝试使用JOIN语句,如果有更好的方法可以解决这个问题,我很想听听。 在此先感谢您的帮助。