选择所有具有相同外键的行,满足条件

时间:2017-03-22 08:26:14

标签: mysql sql

我有两个表,operationoperationTask。让我们说operation只有

  • ID

operationTask

  • ID
  • operation_id“as foreign key”
  • status“Boolean 0:1”

这两个表之间的关系是一对多的。

我想选择所有任务“operationtask”状态等于1的所有操作。

我尝试过:

SELECT * 
FROM `operation` 
WHERE operation.id = All(
    SELECT task.operation_id 
    FROM operationtask task 
    WHERE task.status=1 
    GROUP BY task.operation_id)

例如:

操作:

ID
---
1
2
3

operationtask:

ID   operation_id   status
---  ------------   ------
1         1           1
2         1           0
3         2           1
4         2           1
5         3           0
6         3           0

结果应该是:

操作:

ID
---
2

1 个答案:

答案 0 :(得分:1)

select *
from operations o
where not exists (
      select 1 
      from operationtask t 
      where t.operation_id = o.id and t.status = 0)