我们有一个Projects
表,其中项目可以由projectA.parent_id = projectB.id
嵌套.
当 Select 所有符合给定标准的项目时,如果父母双方都满足(或父母满足),我们如何 Select only个,如果子元素满足,我们如何 Select only个子元素?
id | parent_id | is_chosen |
---|---|---|
1 | null | false |
2 | 1 | true |
3 | 2 | true |
4 | 1 | false |
5 | 4 | false |
6 | 1 | false |
7 | 6 | true |
8 | 1 | true |
9 | 8 | false |
SELECT p.id
FROM "Projects" p
JOIN "Projects" parent
ON p.parent_id = p.id
WHERE is_chosen = true
AND ...
结果应该是2,7,8
,而不是2,3,7,8
.3
将被排除,因为其父对象2
已被选中.
为了实现这一目标,AND
人中应该包括哪些内容,或者应该对其进行重组?