2017-10-29 10 views
0

私は次のテーブルを持っているがoption_to_nameデータと呼ば:選択多対多のテーブルから

+-----------+---------+ 
| option_id | name_id | 
+-----------+---------+ 
| 1   | 1  | 
| 1   | 2  | 
| 2   | 2  | 
| 3   | 2  | 
+-----------+---------+ 

私はoption_id12値との関係を持っているname_idを選択する必要があります。私はWHERE INを使用しようとしましたが、has 1 or has 2のように動作します。

SELECT name_id FROM option_to_name WHERE option_id IN (1, 2) 

option_idの両方12値を持つname_idを選択する方法はありますか?

答えて

1

あなたは近くです。ちょうどいくつかの集計を追加してください:

SELECT name_id 
FROM option_to_name 
WHERE option_id IN (1, 2) 
GROUP BY name_id 
HAVING COUNT(DISTINCT option_id) = 2; 
+0

いいアイデア!どうもありがとう! –

関連する問題