2016-11-06 11 views
3

選択したIDを含むレコードを選択したいが、同じリストのこれらのIDだけを含んでいない。IDを含むが、同じリストのIDのみを含むレコードを選択する方法

マイSQLコード:

select question_id, person_id from `answers` where 
`person_id` in ('9', '18') 

結果:

2, 9 
2, 18 
4, 9 
4, 18 
5, 18 
6, 9 

期待される結果:

5, 18 
6, 9 

完全なSQLクエリ:

select id, name 
from questions 
where id not in ('3', '13') and 
exists (select `id` from `answers` where `answers`.`question_id` = `questions`.`id` 
and `person_id` in ('9', '18')) order by RAND() limit 1 
+0

サンプルデータと予想される出力と一緒に本物のクエリを表示してください。私は閉会に投票しませんでしたが、あなたの質問は不明です。 –

答えて

2

次の方法でグループを使用して、セットにPERSON_IDと行のみを選択

select question_id, person_id 
from `answers` 
where person_id` in ('9', '18') 
group by question_id 
having count(distinct person_id) = 1 

を持って試みることができるが、その試合唯一の値は

+1

@TimBiegeleisen。これは私の提案です...希望は役に立ちます.. – scaisEdge

+0

ありがとう:)私はちょうどオプション(1と1)を追加します。最後の1はWHERE INマイナス1から数えられた配列です – Saibamen

+0

ありがとうございます= 1 – scaisEdge

関連する問題