2011-08-01 62 views
0

我有如下表:SQL查詢計數時question_id是相同的,user_id是不同

res_id quiz_id  sender_id user_id  question_id points 
    1   1   2  33  20  0 
    2   1   2  34  20  0 
    3   1   2  24  20  0 
    4   2   3  22  2  1 
    5   3   4  3  6  1 

我想要得到的結果,如果quiz_id是相同的三行question_id是相同的,SENDER_ID一樣確保USER_ID是不同的,並且點是0。如果這個條件是1至PHP變量這裏滿意pass值是例如:

res_id quiz_id  sender_id user_id  question_id points 
    1   1   2  33  20  0 
    2   1   2  34  20  0 
    3   1   2  24  20  0 
+0

我假設這些數據來自數據庫?你有任何PHP代碼去解決這個問題嗎? – afuzzyllama

+0

編輯您的問題,以顯示您目前無法使用的任何PHP。 –

+0

@ afuzzyllama- php代碼不過是一個像var $ a =「sql語句」這樣的變量;我想獲得上述可用組合中所有可能組合的數量。感謝您的期待。 – ken

回答

1

的「1〜PHP的變量如果滿足該條件時通過值」是不我很清楚(你只是想知道有三個(或更多)行滿足您的查詢?)但查詢應該是類似於

SELECT 
    count(*) 
FROM tab t1 
    JOIN tab t2 ON(t1.quiz_id = t2.quiz_id)AND(t1.question_id = t2.question_id)AND(t1.sender_id = t2.sender_id) 
    JOIN tab t3 ON(t1.quiz_id = t3.quiz_id)AND(t1.question_id = t3.question_id)AND(t1.sender_id = t3.sender_id) 
WHERE(t1.user_id <> t2.user_id)AND(t2.user_id <> t3.user_id)AND(t1.user_id <> t3.user_id) 
     AND(t1.points = 0)AND(t2.points = 0)AND(t3.points = 0) 
GROUP BY t1.quiz_id, t1.sender_id, t1.question_id 
+0

基本上我想要獲得數據庫中可用的查詢數量。因此,如果有10個與上述條件匹配的querries,我希望變量$ a的值爲10.感謝您的查詢,我現在就試試它。 – ken

+0

@ken查看更新的答案 - 我更新了查詢以包含COUNT/GROUP BY – ain

+0

非常感謝。但我認爲勞倫斯是正確的。我得到了6 6 6 6的結果集。沒有一個單一的價值。所以我將不得不找出一些其他方式來查詢。 – ken

相關問題