3

特定の国のみの質問を選択するクエリを作成したいので、国 1 と 2 を含む質問を選択すると、2 つの国があり、それらの国が 1 と 2 である質問のみが表示されます。

私は3つのテーブルを持っています - questions、countries、questions_has_countries

  • 質問: ID、質問
  • 国 : ID、名前
  • question_has_countries : question_id、countries_id

私は試した :

SELECT q.question, q.id , c.id  
FROM questions as q, countries as c,  questions_has_countries as qhc
WHERE c.id = qhc.countries_id 
AND qhc.questions_id = q.id 
AND c.id IN (1,2) 
GROUP BY q.question
HAVING COUNT( qhc.countries_id ) = 2

5 行目 ( AND c.id IN (1,2) ) を使用すると、カウンターが正しく機能しなくなり、検索が絞り込まれます。私はそれを書き直さなければならないことを知っていますが、方法がわかりません。助けてください。

4

1 に答える 1

2

句を削除し、WHERE句を次のように変更HAVINGします

HAVING  SUM(c.id IN (1,2)) = 2 AND
        COUNT(DISTINCT c.id) = 2
于 2013-09-16T08:57:57.987 に答える