MySQLFiddle這裏:http://sqlfiddle.com/#!2/15d447/1MySQL的加入表與自身比較結果
我有我試圖與工作單個表:
表1:user_answers
表(存儲用戶解答各種問題)
存儲的值得注意的值是用戶id(列uid
),他們正在回答的問題的問題ID(列quid
),問題的答案(列answer
)及其答案的重要性(列importance
)。
最終的結果我想:
我希望能夠抓住所有,任何兩個用戶已回答的問題,但不包括問題,這要麼沒有得到回答了對方的任何答案,或對於importance
中的任何一個用戶,回答同樣的問題的值爲1。再次,這將只用於一次比較兩個用戶。
我已經非常不成功的在我的嘗試,但這裏是我試過,只是拼湊的東西放在一起:
#attempt one: trying to exclude answers that were not answered by both users
SELECT * FROM user_answers AS uid1
JOIN user_answers AS uid2 ON uid1.uid = uid2.uid
WHERE uid1.uid = 1
AND uid2.uid = 20008
AND uid1.quid IS NOT NULL
AND uid2.quid IS NOT NULL;
這不返回任何結果,但我不知道是什麼原因。
#attempt two: trying to exclude where answers are the same for both users
SELECT * FROM user_answers AS uid1
LEFT JOIN user_answers AS uid2 ON (uid1.uid = uid2.uid AND uid1.answer <> uid2.answer)
這給了我的結果,但似乎因爲連接而加倍。我也試圖消除任何相同的答案,這似乎是在這個意義上的工作。
任何指導表示讚賞。
謝謝。
+1。 。 。如何不能啓動一個以「我的SQL小提琴在這裏」開頭的問題? –