2016-09-08 3 views
0

У меня есть 2 таблицы следующим образом.Запрос статистики счетчика фильтра

Пользователь

id   name 
--------------- 
1   john 
2   raju 
3   manu 
4   raghu 

friendtable

id userid  recvId 
------------------------ 
1 1   2 
2 1   3 
3 2   3 
4 3   4 

Можно ли отфильтровать пользователей по их друзей считать от них tables.Please помочь мне.

Для например: - диапазон> = 3 приведет к: джон, Ману

диапазон> 3 и диапазон < 2 приведет: Раджу диапазон < 2 результат: Рагу

+1

Да. Это вполне возможно. – Strawberry

+0

Вы спрашиваете, сколько раз каждый пользователь user.id существует в двух столбцах друга? – jarlh

+0

@jarlh да. в точку. – Preethy

ответ

0
SELECT name FROM user a,friendtable b WHERE a.id=b.id AND b.recvid>=3 

SELECT name FROM user a,friendtable b WHERE a.id=b.id and b.recvid>3 AND b.recid<2 

SELECT name FROM user a,friendtable b WHERE a.id=b.id AND b.recid<2 
1

Делают UNION ALL чтобы получить идентификатор id от friendstable в одном столбце. Присоедините таблицу пользователей к этому результату.

Сделайте GROUP BY, отрегулируйте HAVING, чтобы решить, что возвращать, например. не менее 3 раз и т. д.

select u.name 
from users 
join (select userid as id from friendtable 
     union all 
     select recvId as id from friendtable) f 
    on u.id = f.id 
group by u.name 
having count(*) >= 3 
Смежные вопросы