私はこのクエリを書く方法や説明する方法を失っています。基本的にWHERE句を複数の行に適用しようとしています。SQL - 複数の行に適用されるWHEREを使って選択する
私はそうのようなテーブルを持っている:
RuleID QuestionID AnswerID
=================================
1 1100 1105
1 1200 1205
1 1300 1305
2 1100 1105
2 1200 1206
2 1300 1305
私は具体的な質問/答えを持っているすべてのユニークなRuleIDsを得ることができますどのように疑問に思って。
たとえば、次のようになりますが、明らかに、同じ行のすべてのwhere句をチェックするため、結果は返されません。
select DISTINCT RuleID FROM table
where (QuestionID=1100 and AnswerID=1105)
and (QuestionID=1200 and AnswerID=1205)
and (QuestionID=1300 and AnswerID=1305)
申し訳ありません。 ORの声明は私の質問に基づいて動作しますが、私が実際に渡すすべての基準、つまり私の例で定義されている3つの質問すべてに正しい答えを持つルールに一致するすべてのルールを実際に取得したい。だから、QuestionID = 1200の答えが一致しないので、RuleID 1は表示されますが、2は表示されません。しかし、OR文RuleID 2を使用しても表示されます。 – TomF
私はうまくいくと思われるものを考え出しましたが、それが最良の方法かどうかはわかりません。基本的に一致したルールの数をチェックして: SELECT \t \tテーブルから WHERE \t \t(QuestionID = 1100)AND(AnswerID = 1105)OR \t \t(QuestionID = 1200)AND(AnswerID = 1205)を をRuleID OR \t \t(QuestionID = 1300)AND(AnswerID = 1305) GROUP BYは、はい、私は回答が特定されると信じて、私はまた – TomF