gpt4 book ai didi

mysql - 通过多个wheres from关系查询1-多关系

转载 作者:行者123 更新时间:2023-11-29 20:35:17 25 4
gpt4 key购买 nike

很抱歉标题模糊;如果有人有更好的选择,我会改变它!

我有两个表,其中一个包含项目及其元数据;以及项目已达到的里程碑。一个项目可以有多个里程碑。

projects: id | title | .....
milestones: id | type | project_id | ...

检索具有 x 类型里程碑的所有项目非常简单。或者从每个项目中检索最后一个里程碑。

但我现在遇到的问题是构建一个查询,该查询为我提供具有给定里程碑集的所有项目(id)。

因此:返回具有里程碑类型 a 和类型 d 和类型 x 的所有项目。里程碑的数量可以变化;但总是 >= 1

有人有建议吗?

最佳答案

假设projects.id是项目上的PK,使用group by并具有count(*)

select p.id, count(*) milestones
from projects p join milestones m on p.id = m.project_id
where m.type in ('A','D','X')
group by p.id
having count(*) >= 1

如果您想拥有所有 3 种类型,您应该计算不同的milestones.type(感谢@jarlh):

select p.id, count(*) milestones
from projects p join milestones m on p.id = m.project_id
where m.type in ('A','D','X')
group by p.id
having count(distinct m.type) = 3

关于mysql - 通过多个wheres from关系查询1-多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38824145/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com