MySQL:只返回缺乏特定标准的结果?

时间:2011-08-24 18:00:40

标签: mysql

我正在尝试构建一个只返回未分配任务的MySQL查询。如果任务有一个或多个assignments is_assignee等于y,则会认为该任务已分配。

tasks
- id
- name
- description
assignments
- task_id
- user_id
- is_assignee
- is_owner

我错误地发现以前没有相关assignments行的任务:

SELECT t.*
FROM tasks t
LEFT OUTER JOIN assignments a
ON t.id = a.task_id
WHERE a.id is NULL

这很有效,但只返回没有所有者和没有受让人的任务。我需要的是返回没有相关assignments行且is_assignee设置为'y'的任务。是否有一种有效的方法只返回我正在寻找的未分配的task行?

1 个答案:

答案 0 :(得分:2)

我可能会误解,但在JOIN子句中添加其他逻辑,只过滤is_assignee = 'y'应该执行的操作。

SELECT t.*
FROM tasks t
LEFT OUTER JOIN assignments a
ON t.id = a.task_id AND a.is_assignee = 'y'
WHERE a.id is NULL