获取用户关注者信息以及用户关注者数量

时间:2016-01-15 06:14:47

标签: php mysql sql

我在下面有一个简单的表格,用户2 & 3关注用户1,用户3关注用户2

user_follower

user_id | follower_id
-----------------
1    | 2
1    | 3
2    | 3

用户

id | name
---------------
1 | Kuldeep
2 | john
3 | Jacob

我需要sql query用户1关注者的所有信息以及他们的关注者数量,因此用户1的预期结果将是

id name count
2  john  1
3  jacob 0

我正在使用PHP with mysql所以无论采取什么样的优惠方式都是受欢迎的。

提前致谢

2 个答案:

答案 0 :(得分:2)

user_follower表的自连接以构造关系,然后连接到User表以获取名称将为您提供所需的结果:

SELECT uf1.follower_id AS id, u.name, COUNT(uf2.follower_id) AS count
FROM user_follower uf1
    LEFT JOIN user_follower uf2
        ON uf1.follower_id = uf2.user_id
    INNER JOIN User u
        ON uf1.follower_id = u.id
WHERE uf1.user_id = 1
GROUP BY uf1.follower_id

点击以下链接查看正在运行的演示:

SQLFiddle

答案 1 :(得分:0)

尝试如下:

select id,name,count(user_follower.user_id) as count 
from user 
left join user_follower 
on user.id = user_follower.user_id 
group by user.id

检查this how-to