PHP SQL подсчет количества совпадений для запроса - PullRequest
1 голос
/ 31 января 2010

Как мне подсчитать количество строк, соответствующих двум переменным?

У меня есть таблица с именем: users

и полями с именем: имя пользователя & реферал

У меня есть еще одна таблица: комментарии

и поля с именем: 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 ]

5 голосов
/ 31 января 2010

А как насчет этого запроса:

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;
3 голосов
/ 31 января 2010

Поскольку мой фактический счет постов пока не позволяет комментировать, некоторые дополнения к христианам отвечают.

Имеет предложение о наличии, поэтому условие> = 10 будет хорошей идеей

3 голосов
/ 31 января 2010

Вы должны использовать JOIN в вашем случае. Что-то вроде (если я правильно понимаю)

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

Вы можете найти больше информации здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...