Я бы просто присоединился к таблице, содержащей имя, а затем отсортировал по имени. Предполагая довольно нормальное расположение таблиц:
Таблица Person:
Я БЫ,
Имя,
LastName
Стол друга:
auto_ID,
from_user_ID,
to_friend_ID,
дата
Вы можете сделать что-то вроде:
Select person.id, person.firstname, person.lastname, friend.auto_id
from Friend
left join on person where person.id = friend.to_friend_ID
where friend.from_user_ID = 1
order by person.lastname, person.firstname
или
Select person.id, person.firstname, person.lastname, friend.auto_id
from Friend
left join on person where person.id = friend.to_friend_ID
where friend.from_user_ID = 1
order by friend.date desc
Я бы действительно рекомендовал добавить столбец в таблицу друзей, чтобы сохранить первую букву, не нужно дублировать подобные данные (и беспокоиться о синхронизации), для этого нужны объединения.