Вы должны быть в состоянии объединить, чтобы выполнить оба запроса в одном. Ваш SQL будет выглядеть так:
SELECT U.username
FROM users AS U
INNER JOIN test_friends AS F
ON U.Id = F.user_id
WHERE F.friend_id = '{$userID}'
AND F.active = 1
UNION
SELECT u.username
FROM users u
INNER JOIN test_friends f
ON u.id = f.user_id
WHERE ( f.friend_id = '{$userID}'
AND active = 1 )
OR ( f.user_id = '{$userID}'
AND active = 1 )
Он также удалит дубликаты для вас автоматически, как если бы вы включили DISTINCT для всего лота. (Вы делаете «UNION ALL», если не хотите этого.)
Также, если вы хотите упорядочить результаты, добавьте "ORDER BY 1 ASC" в конце. Вы можете использовать только номера столбцов набора результатов в предложении ORDER BY с объединениями.
Запросы объединения работают только в том случае, если количество и типы столбцов, возвращаемых в наборе результатов каждого подзапроса, одинаковы.
В сторону: ваш первый запрос является подмножеством второго запроса, поэтому вам действительно нужен только второй запрос. Я оставил это как демонстрацию того, как делать союзы, но вам в этом нет необходимости.