我有兩個表,一個選擇題問卷(每用戶回答一系列的問題):MySQL的嵌套AND和幾個條件
users (userID, name, email)
votes (voteID, userID, questionID, answerID)
的樣本數據(用戶):
0, Some Name, [email protected]
1, Other Name, [email protected]
示例數據(votes):
0, 1, 1, 1
1, 1, 2, 2
2, 1, 3, 2
我想選擇所有有正確答案的用戶。
我想這(在那裏我已經硬編碼的答案):
$sql = "SELECT users.userID, users.name, users.email FROM users
INNER JOIN votes ON (users.userID = votes.userID)
WHERE (votes.questionID = '1' AND votes.answerID = '1')
AND (votes.questionID = '2' AND votes.answerID = '2')
AND (votes.questionID = '3' AND votes.answerID = '2')
AND (votes.questionID = '4' AND votes.answerID = '3')
AND (votes.questionID = '5' AND votes.answerID = '1')
GROUP BY users.userID";
但這並不返回任何東西。
我也試過這樣的事情(在那裏我也硬編碼的答案中):
$sql = "SELECT users.userID, users.name, users.email FROM users
INNER JOIN transfertipsvotes ON (users.userID = transfertipsvotes.userID)
WHERE (transfertipsvotes.questionID = '1' AND transfertipsvotes.answerID = '1') GROUP BY users.userID
UNION
SELECT users.userID, users.name, users.email FROM users
INNER JOIN transfertipsvotes ON (users.userID = transfertipsvotes.userID)
WHERE (transfertipsvotes.questionID = '2' AND transfertipsvotes.answerID = '2') GROUP BY users.userID
UNION
SELECT users.userID, users.name, users.email FROM users
INNER JOIN transfertipsvotes ON (users.userID = transfertipsvotes.userID)
WHERE (transfertipsvotes.questionID = '3' AND transfertipsvotes.answerID = '2') GROUP BY users.userID";
但這只是返回所有用戶一個正確答案。
如何進行正確的查詢以選擇具有正確答案的所有用戶?
哪一欄顯示答案是否正確?如何? – 7alhashmi
我正在打印出users.userID,users.name和users.email。 –