mysql - sql条件至少有一个子项是状态成功
问题描述
数据库结构
示例 1 - 父母身份是InProgress
Parent -> id: 1
Children:
id: 1 parentId: 1, status: 2
id: 2 parentId: 1, status: 1
示例 2 - 父母身份是Completed
Parent -> id: 2
Children:
id: 1 parentId: 2, status: 2
id: 2 parentId: 2, status: 2
示例 3 - 父母身份为Pending
Parent -> id: 3
Children:
id: 1 parentId: 3, status: 1
id: 2 parentId: 3, status: 1
children
状态1
是pending
,状态2
是success
我想列出所有的父母,他们total status
都这样考虑他们的孩子
id status
1 InProgress
2 Completed
3 Pending
解决方案
根据父 ID 聚合子表,看看你有什么。
select parentId
case when max(status) = 1 then 'Pending'
when min(status) = 2 then 'Completed'
else 'InProgress'
end as status
from children
group by parentId
推荐阅读
- javascript - 如果单词正确,我如何重定向页面
- ios - tvOS Top Shelf 不在真实设备上显示本地图像
- python - 在不更改列类型的情况下连接 numpy 数组
- mysql - 将 MySQL 查询合并为嵌套查询
- java - Sonarlint:将 ssl 证书添加到 JVM 密钥库后,无法使用 Intelliji 连接到 sonarbaquue 服务器
- c# - 如何从其他不继承 monoBehaviour 的类中检索和使用信息?
- python - 如何在多维数组中得到正确的数组
- java - 添加数组列表时的Android Material Design下拉布局问题
- swiftui - swiftUI,将视图移动到我点击的位置
- node.js - How to express the array of objects via CLI?