SELECT
d.user_id,
d.user_name,
d.user_avatar,
d.user_featured,
d.user_joined,
d.points
FROM
(
SELECT
u.user_id,
u.user_name,
u.user_avatar,
u.user_featured,
u.user_joined,
COALESCE((
SELECT
SUM(points_value)
FROM points
WHERE user_id = u.user_id
AND points_date > " . $cutoff . "
), 0) AS points
FROM users AS u ) AS d
LEFT OUTER JOIN
(
SELECT
DISTINCT friend_to,
friend_id
FROM friends
WHERE friend_from = " . $id . "
) AS myfriends
ON d.user_id = myfriends.friend_to
WHERE d.user_id <> " . $id . "
AND myfriends.friend_id IS null
ORDER BY d.user_featured DESC, d.points DESC, d.user_joined ASC
LIMIT " . $start . ", " . $number;