(SQL) Заводить друзей, где пользователь и друзья находятся в 2 разных таблицах

#php #sql #join #select

#php #sql #Присоединиться #выберите

Вопрос:

У меня есть 2 таблицы: пользователи и друзья. Я хочу показать каждую фотографию профиля друзей зарегистрированного пользователя, но совпадение loggedUser-friends находится в другой таблице (которая является friends), чем та, которая содержит URI для фотографий профиля (которая является users).

Мой запрос теперь выглядит следующим образом:

  SELECT profile_picture FROM users WHERE 
  

И теперь я должен завершить предложение WHERE:

схема таблицы друга следующая:

 id | user_id | friend_id
  

пример данных таблицы друзей:

 1 | pino20 | sebo14
  

в то время как схема таблицы пользователей

 id | user_id | profile_picture
  

пример данных таблицы пользователей:

 1 | pino20 | pino20/profile.jpg
  

Комментарии:

1. Возможно, вы захотите добавить примеры данных для обеих таблиц в свой вопрос.

2. @TimBiegeleisen добавил

3. вы хотите, чтобы все друзья зарегистрированного пользователя или конкретный друг?

4. нужны табличные данные, чтобы участник правильно понимал, что вам нужно.

Ответ №1:

С помощью приведенного ниже запроса вы получите идентификатор пользователя вашего друга и его фотографию профиля.

 
select user_id , profile_picture from users WHERE user_id in( select friend_id from friends where user_id=$your_userid)

  

Ответ №2:

Вышеуказанный результат может быть достигнут с помощью join

 SELECT NT.profile_picture  FROM users AS NT JOIN friends  AS FR ON FR.id = NT.id
  

Ответ №3:

Вы можете достичь этого с помощью объединений. Это должно выглядеть так:

РЕДАКТИРОВАТЬ: ВЫБЕРИТЕ user.profile_picture,user_friend.profile_picture ОТ пользователя JOIN friend НА user.user_id = friend.user_id слева join user user_friend на user_friend.friend_id=friend.user_id — левое объединение, поскольку мы не хотим удалять записи, если нет совпадения

Комментарии:

1. Теперь мой запрос выглядит как ВЫБРАТЬ users.profile_picture ИЗ users присоединиться к друзьям на users.user_id=»Pino20″, но он возвращает изображение профиля для Pino20, а не от друзей Pino20