我在下面有一个简单的表格,用户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
所以无论采取什么样的优惠方式都是受欢迎的。
提前致谢
答案 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
点击以下链接查看正在运行的演示:
答案 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