select name,if(friend.userid is null,0,count(*)) as num from user left join friend
on user.userid=friend.userid group by user.userid order by num desc试试行不行
on user.userid=friend.userid group by user.userid order by num desc试试行不行
(select count(id) from friend where userid=a.id or friendid=a.id) as num
from user a order by num desc
where a.userid=user.userid