我一直试图找出一个MySQL语句来执行以下操作。
我尝试了来自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'
关于返回已安排的作业和未安排的作业的查询根本不会显示。
如果有人能帮助我从哪里开始,我将不胜感激?我遇到了障碍,所以我决定在这里寻求帮助!提前谢谢!
答案 0 :(得分:1)
要获得未安排的工作,请使用左连接
SELECT a.*, c.*
FROM tbl_jobs a
LEFT JOIN tbl_schedule c
ON a.job_id = c.job_id
LEFT JOIN (
SELECT job_id, MIN(timeslot) ts
FROM tbl_schedule
GROUP BY job_id AND
) b ON c.job_id = b.job_id
WHERE date = '2018-01-05'