#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