SQL 到 select 行,其中所有关联都没有空值
SQL to select rows where all associations have not null values
我有两个表:workflows
和 tasks
。任务属于工作流。
我想要 select 所有 所有 与之关联的任务都已完成的工作流。
例如:
工作流程 1
- 任务 A -
completed_at = 2020-01-01
- 任务 B -
completed_at = null
工作流 2
- 任务 C -
completed_at = 2020-01-01
- 任务 D -
completed_at = 2020-01-01
工作流程 3
- 任务 E -
completed_at = 2020-01-01
- 任务 F -
completed_at = 2020-01-01
我想 运行 只查询 select 的工作流 2 和 3,因为它们的任务已完成且没有未完成的任务。
您可以尝试“不在子查询中”,如下所示:
select *
from workflows
where workflow_id not in (select workflow_id
from tasks
where completed_at is null)
我有两个表:workflows
和 tasks
。任务属于工作流。
我想要 select 所有 所有 与之关联的任务都已完成的工作流。
例如:
工作流程 1
- 任务 A -
completed_at = 2020-01-01
- 任务 B -
completed_at = null
工作流 2
- 任务 C -
completed_at = 2020-01-01
- 任务 D -
completed_at = 2020-01-01
工作流程 3
- 任务 E -
completed_at = 2020-01-01
- 任务 F -
completed_at = 2020-01-01
我想 运行 只查询 select 的工作流 2 和 3,因为它们的任务已完成且没有未完成的任务。
您可以尝试“不在子查询中”,如下所示:
select *
from workflows
where workflow_id not in (select workflow_id
from tasks
where completed_at is null)