2015-10-02 4 views
0

Мне нужно получить 3 лучших источника, а также количество рефералов, но только квалифицированные (table_2). Надеюсь, это имеет смысл. Пока у меня есть следующий запрос. Пожалуйста помоги. СпасибоПолучить строки с условием из 2 таблиц

SELECT count(*) as total_referrals, referrer 
FROM table_1 
WHERE table_2.qualified = '1' 
GROUP BY referrer 
ORDER BY total_referrals DESC 
LIMIT 0,3 

table_1

referrer referral 
user1  user89 
user1  user54 
user1  user23 
user1  user56 
user2  user89 
user2  user23 
user2  user45 
user3  user78 
user3  user14 
user4  user10 
user5  user98 
user5  user56 
... 

table_2

referral qualified 
user89  1 
user54  0 
user23  0 
user56  1 
user89  1 
user23  1 
user45  0 
user78  1 
user14  1 
user10  0 
user98  1 
user56  1 
... 

ответ

1

Вы должны ссылаться на обе таблицы в ЕКОМ и решить, будет ли ваше имя поле реферер или имя пользователя:

SELECT count(table_1.referrals) as total_referrals, referrer 
FROM table_1 left join table_2 on table_1.referrals=table_2.referrals 
WHERE table_2.qualified = '1' 
GROUP BY table_1.referrer 
ORDER BY total_referrals DESC 
LIMIT 0,3 
+0

Да спасибо! закажите реферер! – karlosuccess

+0

ТАНК ВАС! это сработало!!! – karlosuccess

0

UP ДАТА 2

http://sqlfiddle.com/#!9/2f598/5

Следующий запрос, кажется, делает работу:

SELECT aa.referrer, COUNT(*) AS total_referrals 
FROM table_1 AS aa 
INNER JOIN (
    SELECT referral 
    FROM table_2 
    WHERE qualified = 1 
    GROUP BY referral 
) AS _bb 
ON aa.referral = _bb.referral 
GROUP BY aa.referrer 
ORDER BY total_referrals DESC 
LIMIT 3; 
+0

Благодарим за помощь! – karlosuccess

Смежные вопросы