【发布时间】:2010-06-11 21:08:26
【问题描述】:
我有两张桌子。表 A 有一个 id 列。表B 有一个Aid 列和一个type 列。示例数据:
A: id
--
1
2
B: Aid | type
----+-----
1 | 1
1 | 1
1 | 3
1 | 1
1 | 4
1 | 5
1 | 4
2 | 2
2 | 4
2 | 3
我想从表 A 中获取所有 ID,其中有一定数量的类型 1 和类型 3 操作。我的查询如下所示:
SELECT id
FROM A
WHERE (SELECT COUNT(type)
FROM B
WHERE B.Aid = A.id
AND B.type = 1) = 3
AND (SELECT COUNT(type)
FROM B
WHERE B.Aid = A.id
AND B.type = 3) = 1
以上面的数据为例,应该只返回 id 1。
我可以以某种方式组合这 2 个子查询吗?目标是使查询运行得更快。
【问题讨论】:
标签: sql postgresql subquery