Sqlfiddle這裏存在之間的連接:http://sqlfiddle.com/#!2/4c532/6搞清楚兩個用戶排除其中列不爲一個
我有一個表(user_answers
),它保存用戶給問題的答案。在sqlfiddle中,我們有用戶1和用戶2的數據。用戶1共回答5個問題,用戶2共回答8個問題。
我要尋找的結果是:
我希望能拉多少的問題,用戶已經回答了另外一個也回答了。示例輸出如下所示:「用戶1已回答了您回答的8個問題中的5個」。
我曾嘗試加入表,但它給了我更多的結果比我所期待的,我還沒有指定在此查詢,以測試其用戶:
SELECT * FROM user_answers t1
JOIN user_answers t2 ON t1.uid > t2.uid
AND t1.answer IS NOT NULL
,然後當我試圖指定用戶我沒有與此查詢結果:
SELECT * FROM user_answers t1
JOIN user_answers t2 ON t1.uid > t2.uid
AND t1.answer IS NOT NULL
AND t1.uid = 1
AND t2.uid = 2
我覺得我越來越近,但可以使用一些指導。
謝謝。
這很好。我正在玩一個子查詢,但我也在閱讀它可能表現不佳和加入的地方。在這種情況下仍然可以加入連接,或者子查詢是我正在查找的結果的最佳方法?乾杯。 – Jared
你當然可以用一個連接來代替它,像這樣'SELECT t1.quid FROM user_answers t1 join user_answers t2 on t1.id = t2.id group by t1.quid have count(*)> 1;'。但我會建議首先看看這個答案:http://stackoverflow.com/a/2577188/473637 – Jeshurun
這不會遠程回答這個問題。用戶的問題總數在哪裏?共享問題總數在哪裏? – Bohemian