我對如何編寫此查詢甚至如何解釋它感到茫然 - 基本上我試圖讓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個問題都有正確答案的規則。所以RuleID 1應該顯示但不是2,因爲它是AnswerID = 1200的不匹配。但是使用OR語句RuleID 2也會顯示。 – TomF
我確實想出了一些似乎可行的事情,但不知道它是否是最好的方法。基本上通過檢查的匹配規則的計數: SELECT \t \t RuleID FROM表 WHERE \t \t(QuestionID = 1100)AND(AnswerID = 1105)OR \t \t(QuestionID = 1200)AND(AnswerID = 1205)OR \t \t(QuestionID = 1300)AND(AnswerID = 1305) GROUP BY RuleID HAVING COUNT(RuleID)= 3 – TomF