2017-03-26 5 views
2

各カテゴリのユーザーを検索するための良い日を探しています。私はそれを理解するよう、カテゴリ1と2で、私は、IN(1,2)のアプローチが、これを試してみましたさ複数のカテゴリのユーザーMySQL

user_id 
------- 
1 
2 
3 
4 

table_user_categories

user_id|category_id 
------------- 
1  |1 
1  |2 
2  |1 
2  |3 

だから私はMySQLをお願いしたいと思います、であるOR私にuser_id 1と2の結果を与えないでください。

これはまた、約15のカテゴリがあるので拡張可能であることが非常に重要なので、質問にもっと追加する必要がありますユーザーが自分のインターフェースで選択する数が多いほどです。

私はここに私の記事で逃した何かのための謝罪は、常に質問するのとは対照的に、これらのことを考えるのが簡単です。一般的に、ちょうどこれは比較する投稿するつもりだった...

SELECT u.user_id, COUNT(*) AS category_count 
FROM table_user_categories AS u 
WHERE u.category_id IN (1,2) 
GROUP BY u.user_id 
HAVING category_count = 2; 
+0

私は別のcategory_idでいくつかの相違点を見つけますので、あなたを試してみてください。あなたのスピーディーな返事をありがとうございました。そのすべてがうまくいくなら、私はそれを投票して受け入れます:-) –

答えて

2

あなたは両方を持っているすべてのuser_idsを検索する場合(または -

は、私はちょうど私がしようとしていたの古いバージョンを掘っ、すべての)指定されたカテゴリを、あなたはフィルタリングと集約を使用することができます。

select user_id 
from table_user_categories 
where category_id in (1, 2) 
group by user_id 
having count(distinct category_id) = 2; 

上記の句のhavingはCATEGORY_IDの両方でuser_idは1 2が返されることを確認してください。

関連する問題