我有以下问题:
我有一个像这样的关系表:
ParentId | ValueId
1 1
1 2
2 3
2 4
2 1
然后,我想获取具有查询所要求的值的 ParentId,不多也不少。
我其实有这个疑问:
SELECT "ParentId" FROM public."ParentValueRelation"
WHERE "ValueId" = 1 AND "ValueId" = 2
GROUP BY "ParentId"
预计收到 1 但收到 null
续集中的答案可能很好,但不是必需的
在 Postgres 中有多种方法可以做到这一点。 比如像这样:
SELECT "ParentId" FROM public."ParentValueRelation"
WHERE "ValueId" = 1 OR "ValueId" = 2
GROUP BY "ParentId"
HAVING COUNT("ValueID")=2
如果表中有重复项,则需要将having子句替换为
HAVING COUNT(DISTINCT "ValueID")=2