PHP SQL计数查询匹配数

时间:2010-01-31 20:03:25

标签: php sql count

我如何计算与两个变量匹配的行数?

我有一个名为:用户

的表格

和字段名为:用户名&

我有另一张名为:评论

的表格

和调用的字段: comment_username

在这种情况下,我需要获取特定用户引用的至少10条评论(评论表中的行)的推荐数量。

所以我认为代码应该是这样粗略的大纲。

    $username = 'bob';
$validrefferalcount = 0;
function validreferrals($username){

    $referreduser = SQL select * from users where referral='$username';

    foreach ($referreduser)   {

    $numberofcomments = SQL count * from comments where comment_username ='$referreduser';
if ($numberofcomments >= 10){
$validreferralcount = $validreferralcount + 1;
}

    }
return $validreferralcount;
    }

我为语法错误等道歉......

感谢阅读。

3 个答案:

答案 0 :(得分:5)

这个查询怎么样:

SELECT COUNT(*) FROM (
    SELECT username, COUNT(*) AS c_comments
    FROM users
        JOIN comments ON username = comment_username
    WHERE referral = 'referral'
    GROUP BY username
) t
WHERE t.c_comments > 10;

答案 1 :(得分:3)

你应该在你的情况下使用JOIN。有点像(如果我理解正确的话)

SELECT count(*) FROM users 
   RIGHT JOIN comments ON comments.comment_username = users.username 
   WHERE users.referral = '$username'

您可以找到更多信息here

答案 2 :(得分:3)

由于我的实际帖子数不允许评论,所以基督徒的一些补充回答。

对计数有一个子句,所以匹配> = 10条件是个好主意