【发布时间】:2018-06-15 08:34:38
【问题描述】:
我一直在尝试找出一个 MySQL 语句来执行以下操作。
- 我有一个存储作业 (tbl_jobs) 的表。
- 另一个以固定时隙形式存储工作调度 (tbl_schedule) 的表。
- 我希望生成的查询显示今天安排的所有作业,检查作业是否已安排(时间段字段)并返回最早的时间段。
- 我的时间段存储为 1-8 的数字,所以我使用 MIN 来获取最小的数字。
- 同一作业可以跨越多个时间段。
我尝试了来自 MySQL INNER JOIN select only one row from second table 的代码,但我认为我对查询的理解不够深入,无法为我的目的做出自己的陈述
SELECT a.*, c.*
FROM tbl_jobs a
INNER JOIN tbl_schedule c
ON a.job_id = c.job_id
INNER JOIN (
SELECT job_id, MIN(timeslot) ts
FROM tbl_schedule
GROUP BY job_id
) b ON c.job_id = b.job_id
WHERE date = '2018-01-05'
此查询返回已安排的作业和未安排的作业根本不显示。
如果有人能帮助我了解我应该从这里去哪里,我将不胜感激?我遇到了障碍,所以我决定在这里发帖寻求帮助!提前致谢!
【问题讨论】:
-
你需要使用左连接来获得计划外的工作
标签: mysql