У меня есть две таблицы: users
и friendships
id | name | password
-------------------------
1 | Dave | 1234
-------------------------
2 | John | abcd
-------------------------
3 | Bob | xyz
-------------------------
и friendships
friend_one | friend_two | status
-------------------------------------
1 | 1 | me
-------------------------------------
2 | 2 | me
-------------------------------------
3 | 3 | me
------------------------------------
1 | 2 | pending
-------------------------------------
3 | 1 | active
Теперь, когда пользователь входит в систему, мне нужно чтобы получить всех пользователей в базе данных, мне также нужно добавить дополнительный столбец к результату запроса select, который показывает статус дружбы с текущим вошедшим пользователем.
Например, идентификатор пользователя 1, Дейв войдя в систему и запросив список пользователей, запрос выбора должен быть выведен, как показано ниже,
id | name | password | friend_status
------------------------------------------
1 | Dave | 1234 | me
------------------------------------------
2 | John | abcd | pending
------------------------------------------
3 | Bob | xyz | active
------------------------------------------
Когда пользователь с идентификатором 2, Джон вошел в систему, ему нужно получить приведенную ниже таблицу,
id | name | password | friend_status
------------------------------------------
1 | Dave | 1234 | pending
------------------------------------------
2 | John | abcd | me
------------------------------------------
3 | Bob | xyz | null
------------------------------------------
Возможно ли это вообще? Я пытался объединить таблицы и использовать вложенный запрос
Например, с помощью приведенного ниже запроса я могу получить все данные о дружбе для текущего пользователя, вошедшего в систему:
select * from friendships
where friend_one = 2 or friend_two = 2
Но я не понять, что делать дальше. Я попытался поместить это как вложенный запрос основного запроса выбора и попытался объединить таблицы, но я не получаю то, что хотел.
Кто-нибудь может дать мне идею?