현재 사용자에게 할당되지 않은 작업을 선택하려고합니다.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]
Chris가 하루 후에 Skids로 이동 했으므로 아무도 작업하지 않으므로.
지금까지 :
이SELECT
*
FROM
jobs
WHERE
id
NOT IN
(
SELECT
DISTINCT(job_id)
FROM
assigned
ORDER BY
date_assigned
DESC
)
그러나,이 쿼리는 동일한 데이터 세트에 NULL을 반환한다. 스윕 작업이 현재 작업 중이 아니므로 현재 열리고 있음을 언급하지 않습니다.
이것은 나를 위해 작동하지 않는 것 같습니다. 그러나 나는 계속 노력할 것이다. – user1549575
@ user1549575 왜 작동하지 않는지 설명 할 수 있습니까? 오류, 잘못된 결과입니까? 또한, 당신은 내 질문에 대답 할 수있는 질문에 의견을 물었다. "현재 찍은"이란 무엇을 의미합니까? –
질문에 답할 수 없어 작동하지 않습니다. 문제는 할당 된 적이없는 작업을 선택하는 것이 아닙니다. 할당 내역을 올바르게 정렬하는 것입니다. –