我想選擇當前未分配給用戶的作業。SQL查詢 - 不在一組已經使用的項目中
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]
由於沒有人正在努力,因爲克里斯一天後搬到了斯基德。
到目前爲止:
SELECT
*
FROM
jobs
WHERE
id
NOT IN
(
SELECT
DISTINCT(job_id)
FROM
assigned
ORDER BY
date_assigned
DESC
)
然而,這個查詢在相同的數據集中返回NULL。不解決掃描工作現在處於打開狀態,因爲它目前尚未開始工作。
這似乎不適合我。但我會繼續嘗試。 – user1549575 2012-07-24 19:02:03
@ user1549575你至少可以解釋爲什麼它不起作用?這是一個錯誤,錯誤的結果?另外,你能回答我在問題評論中提出的問題嗎? 「目前採取」是什麼意思? – 2012-07-24 19:04:20
它不會工作,因爲它不回答問題。問題不在於選擇從未分配的作業。這是要正確排序分配歷史。 – 2012-07-24 19:08:09