如果字段的数量在sql查询中的每一行中降低该数字,如何获取行

时间:2017-09-12 12:28:47

标签: mysql

让我试着解释一下我的问题: 我有两张桌子

 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 

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