仅包含一个项目的任务

时间:2014-12-17 11:44:09

标签: mysql sql select group-by having

我的任务表有一个自动增加ID字段,我的taskitem表有一个外键'task_ID'。 taskitem元素可以有许多task_ID(任务可以有很多项)。

我需要创建一个查询,从任务WHERE中选择所有任务ID,taskItem.task_ID是唯一的。即:仅一个项目的所有任务

这是我尝试过的:

SELECT t.ID 
FROM task AS t, taskitem AS ti 
WHERE ti.task_ID = t.ID AND ti.taskID IN (SELECT DISTINCT ti.taskID)

1 个答案:

答案 0 :(得分:3)

taskitem 表中获取所有不同的taskId:

SELECT ti.task_id 
FROM taskitem ti 
GROUP BY ti.task_id 
HAVING COUNT(1) = 1;

要获取所有唯一任务,请使用此查询:

SELECT t.* 
FROM task t 
INNER JOIN (SELECT ti.task_id 
            FROM taskitem ti 
            GROUP BY ti.task_id 
            HAVING COUNT(1) = 1
           ) AS ti ON t.id = ti.task_id;