2017-09-12 7 views
0

は私が私の問題を説明してみましょう: を私は2つのテーブル フィールドのカウントは、SQLクエリの各行でその数を減らす場合は、行を取得する方法

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

ニコラ、 あなたが使用している場合は言いませんでしたAの複数の行を持つrは常に同じ型です。されたと仮定:

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を参照してください。