Связать 3 или более таблиц вместе в PHP MYSQLI для создания настенного канала

0

Я пытаюсь связать эти 5 таблиц вместе, потому что я создаю настенный канал, где сообщения отправляются от пользователя и его друга. Однако мне трудно выбрать все данные из этих 5 таблиц, не имея mysqli с ошибкой. Так выглядит база данных.

У меня есть сообщения TABLES Изображение 174551 У меня также есть ТАБЛИЦЫ ПОЛЬЗОВАТЕЛЕЙ Изображение 174551 Наряду с ТАБЛИЦЕЙ ДРУЗЕЙ Изображение 174551

Теперь в зависимости от типа сообщения: у меня есть таблица фотографий, как таковая Изображение 174551

Проблема заключается в том, как объединить все эти таблицы вместе и вывести их как строки для подачи на стену. Пожалуйста, я ломаю голову

  • 1
    что ты пробовал? в чем была ошибка?
  • 0
    Возможно, JOIN не является ни mysqli , ни PHP вопросом
Показать ещё 4 комментария
Теги:
join
relationship

2 ответа

0

Вы можете комбинировать текущие сообщения пользователей со своими друзьями в одном потоке с несколькими left outer joins:

select
    posts.*,
    users.*,
    photos.photo_source
from posts
join users
    on (users.user_id = posts.user_id)
left join friends
    on (friends.user1 = ? and friends.user2 = posts.user_id)
left join photos
    on (photos.post_id = posts.id)
where
    posts.user_id = ? or not isnull(friends.user2)

(Изменить? На идентификатор пользователя.)

Вы будете получать сообщения, в которых user_id соответствует текущему пользователю или одному из его друзей (friends.user2). Таблица photos также будет выбрана с помощью left outer join.

  • 0
    Спасибо, но что, если я хотел бы также включить видео и таблицу историй
  • 0
    Вы можете добавить left join videos on (videos.post_id = posts.id) и аналогичные для любых дополнительных необязательных таблиц.
Показать ещё 9 комментариев
0
SELECT p.id, p.post_title, p.post_category, p.post_content, u.username
FROM post_table as p, user_table as u, friends_table as f
WHERE u.user_id = p.user_id and (f.user1 = p.user_id or f.user2 = p.user_id) 

Это простой способ получить данные из связанной таблицы.

  • 0
    спасибо, но проблема сейчас в том, как связать это с фотографиями, видео и изображениями других таблиц, которые указаны как типы в таблице сообщений

Ещё вопросы

Сообщество Overcoder
Наверх
Меню