You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL日期筛选求助:编写2020年2月1日马术课程表查询语句

修正后的SQL语句
SELECT LessonDateTime, FirstName, LastName, RegisteredName
FROM LessonSchedule
LEFT JOIN Student ON LessonSchedule.StudentID = Student.ID
INNER JOIN Horse ON LessonSchedule.HorseID = Horse.ID
WHERE LessonDateTime >= '2020-02-01' 
  AND LessonDateTime < '2020-02-02'
ORDER BY LessonDateTime ASC, RegisteredName ASC;
关键修正说明
  • 精准日期过滤:用>= '2020-02-01' AND < '2020-02-02'替代单一的= '2020-02-01',能匹配当天所有带时分秒的课程记录,避免遗漏非整点的课程。
  • 保留未分配学员的课程:LEFT JOIN Student会保留LessonSchedule中所有符合日期条件的记录,即使StudentID为NULL,此时FirstName和LastName会显示为NULL,完全满足需求。
  • 避免错误过滤:确保日期条件仅作用于LessonSchedule表,不要在WHERE子句中添加针对Student表的非NULL约束(比如FirstName IS NOT NULL),否则会丢失未分配学员的课程。

如果你的课程允许未分配马匹的情况,只需将INNER JOIN Horse改为LEFT JOIN Horse即可,此时未分配马匹的课程的RegisteredName会显示为NULL。

内容的提问来源于stack exchange,提问作者Beansie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 03:01:13