У меня есть таблица друзей
: id
, fid1
, fid2
, который представляет собой дружбу между двумя пользователями (двунаправленный).
и пользователи
таблица: fid
, name
Я хотел бы создать функцию или запрос, который принимает
и возвращает
. У меня проблемы с вложением JOIN и UNION. Мне нужен СОЮЗ, чтобы быть уверенным, что у меня будут все дружеские отношения (но также не будет дубликатов). Вот что у меня есть:
SELECT fid1 as friends FROM friendships WHERE fid2 = 123456
INNER JOIN users
ON friendships.fid1 = users.fid
UNION ALL (
SELECT fid2 as friends FROM friendships WHERE fid1 = 123456
INNER JOIN users
ON friendships.fid2 = users.fid
)
, что является ошибкой:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INNER JOIN users ON friendships.fid1 = users.fid UNION ALL ( SELECT fid2' at line 2
в целом у меня проблемы с командами, потому что я не понимаю, как SQL обрабатывает результаты - в нормальных языках программирования я бы пропустил результат INNER JOINs к UNION, а затем примените эту функцию. Но я здесь немного заблудился. Есть мысли?