次のクエリは実際には必要ありませんが、この「理論上の問題」を理解するのに苦労していることに気づきました。users テーブル、groups テーブル、多対多の users_groups テーブルの 3 つのテーブルがあるとします。したがって、1 人のユーザーがグループ 1 と 2 に属している場合、それぞれに 2 つの異なる行が存在します。
さて、グループがたくさんあると仮定して、例えば、グループ 2 と 3 の両方に属するユーザーを具体的にどのように選択すればよいでしょうか?
これらの行に沿って何かを試しましたが、空でした:
SELECT * FROM `users_groups` GROUP BY user_id HAVING group_id = 2 AND group_id = 3
両方のグループが同じ行にあると仮定していると思いますが、これは明らかに機能しません。どうすればいいですか?
編集: 両方のバリアントはどうですか: ユーザーはこれら 2 つのグループにのみ存在する必要があり、ユーザーは少なくともこれら 2 つのグループに存在する必要がありますか?