我正在尝试选择当前未分配给用户的作业。
Users table: id | name
Jobs: id | name
Assigned: id | user_id | job_id | date_assigned
我想选择所有当前未采取的工作。例子:
用户:
id | name
--------------
1 | Chris
2 | Steve
工作
id | name
---------------
1 | Sweep
2 | Skids
3 | Mop
已分配
id | user_id | job_id | date_assigned
-------------------------------------------------
1 | 1 | 1 | 2012-01-01
2 | 1 | 2 | 2012-01-02
3 | 2 | 3 | 2012-01-05
不能给两个人分配同一个工作。所以查询会返回
[1, Sweep]
自从一天后 Chris 搬到 Skids 后,没有人在做这件事。
至今:
SELECT
*
FROM
jobs
WHERE
id
NOT IN
(
SELECT
DISTINCT(job_id)
FROM
assigned
ORDER BY
date_assigned
DESC
)
但是,此查询在同一数据集上返回 NULL。没有解决扫描作业现在打开的问题,因为它当前没有被处理。