2012-10-12 129 views
2

我有像列字段的答案表:SELECT語句並

questionID,answer,email 
row1: questionID = 'q1', answer = 'Male', email = '[email protected]' 
row2: questionID = 'q2', answer = 'Human',email = '[email protected]' 

我想有一個select語句是這樣的:

SELECT email 
FROM answers 
WHERE (questionID='q1' AND answer='Male') 
    AND (questionID='q2' AND answer='Human') 

因此,換句話說,我想所有的男性和人類的電子郵件。事情是每個'答案'是一個新的行,所以這個查詢不起作用。有沒有辦法輕鬆做到這一點?謝謝!

+1

這不起作用,因爲questionID不能同時具有'q1'和'q2'的值。您需要使用'OR'代替 –

+0

問題是我有一個獨特的問題,可能在不同的questionID中有相同的答案。你能解釋一下怎麼處理或?給出的答案返回的結果是男性,但不是人類 –

回答

4
SELECT email FROM answers 
WHERE answer='Male' OR answer='Human' 
group by email 
having count(distinct answer) = 2 
+0

'DISTINCT questionID'子句是爲了避免計數重複的答案,對吧? – tadman

+0

這是正確的。 –

+0

這返回的電子郵件地址的結果已經回答了男性,但不是人類 –