让我试着解释一下我的问题: 我有两张桌子
Table A
|user|type|
|----|----|
|A |1 |
|B |2 |
|A |1 |
|A |1 |
and
Table B
|type|value|
|----|-----|
|1 |2 |
|2 |1 |
如果表A中每个用户的计数小于或等于表B中的正确类型值,我想获取行。
这个例子的结果应该是:
user|user count
----|----------
B |1
答案 0 :(得分:1)
尼古拉, 你没有说过A中有多行的用户是否总是相同的类型。假设是:
select user, cnt as 'user count'
from (
select a.user, b.value, count(*) as cnt
from a
join b on a.type=b.type
group by a.user, b.value
having count(*) <= b.value
) as q
请参阅SQLFiddle。