mysql left join左表重复,mysql - LEFT JOIN到INNER JOIN多个表[重复] - 堆栈内存溢出

经过一天的努力尝试使此查询正常工作之后,我不得不求助。 这是我第一次尝试加入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语句,如果有更好的方法可以解决这个问题,我很想听听。 在此先感谢您的帮助。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值