2011-08-01 32 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

相关问题