@17aPaBo3uK

Как правильно составить sql запрос с нескольким join-ом?

Добрый день.
Помогите составить правильный SQL запрос с нескольким join-ом

Есть таблицы
users [id, name, avatar]
wall [id, user_id, text]
wall_likes [id, user_id, wall_id]

Сначала мне нужно было получить записи wall конкретного юзера + соединить с users, что бы получить имя и аватар.
Делал так
SELECT i.*, u.name, u.avatar
FROM wall i
INNER JOIN users as u ON u.id = i.user_id
WHERE i.user_id = 1
Всё работает без проблем.

Но теперь мне надо получить все записи wall конкретного юзера + соединить с users, что бы получить имя и аватар, так же соединить с wall_likes что бы получить записи, в котором пользователь нажал Лайк.
Не понимаю какой должен быть запрос, пробовал несколько вариантов, либо нечего не выводить, либо выводить мало записей.
INNER JOIN wall_likes as l ON i.user_id = 1 - (не подходить)
INNER JOIN wall_likes as l ON i.wall_id = i.id - (не подходить)
INNER JOIN wall_likes as l ON i.wall_id = i.id AND i.user_id = 1 - (не подходить)

Надо получить записи стен пользователя, а так же записи чужих юзеров, на который текущий пользователь нажал лайк.
Например как в Одноклассниках, на стене пользователя выводиться чужие записи, с тектом на верху "Вася считает классным"
5e8f06919c375905833389.png
  • Вопрос задан
  • 52 просмотра
Решения вопроса 1
VicTHOR
@VicTHOR
(╮°-°)╮┳━━┳ ( ╯°□°)╯ ┻━━┻
SELECT i.*, u.name, u.avatar
FROM wall i
INNER JOIN users u
  ON u.id = i.user_id
WHERE u.id = 1 OR i.id IN (
  SELECT wall_id
  FROM wall_likes
  WHERE user_id = 1
)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы