Mysql запрос на присоединение для отображения зарегистрированного пользователя и последующих сообщений - PullRequest
1 голос
/ 17 апреля 2020

У меня есть следующие таблицы, созданные для проекта, над которым я работаю;

Изображение базы данных

Мне нужна помощь о том, как написать запрос на присоединение mysqli, в котором выбирается сообщение, созданное пользователем USER_ID 1, и все пользователи USER_ID 1 следуют (то есть FOLLOWING_USER_ID 2, 3 и 4). В настоящее время вошедший в систему идентификатор пользователя сохраняется в сеансе $id = $_SESSION['id'];.

SELECT * FROM users_post WHERE by_user_id = $id (SELECT following_user_id FROM users_following WHERE user_id = $id) AND by_user_id = following_user_id

Приведенный выше код не работает :), но я думаю, что так должен выглядеть код , Мне действительно понадобится ваша помощь в том, как решить эту проблему, потому что я не очень хорош в Mysql присоединении.

Желаемый вывод (если заказано DATE_CREATE des c) и для USER_ID 1 Желаемый выходное изображение

1 Ответ

0 голосов
/ 17 апреля 2020

@ aily Похоже, вы хотите перечислить все записи из users_post, где by_user_id указан как following_user_id для данного пользователя в таблице users_following. Если это правильно, то ваш запрос должен выглядеть следующим образом:

SELECT `up`.* 
FROM `users_post` AS `up`
JOIN `users_following` AS `uf` ON `uf`.`following_user_id` = `up`.`by_user_id`
WHERE `uf`.`user_id` = 1
GROUP BY `up`.`id` 

Если вы хотите включить также сообщения из users_post для данного пользователя, ваш запрос будет выглядеть следующим образом:

SELECT `up`.* 
FROM `users_post` AS `up`
JOIN `users_following` AS `uf` ON `uf`.`following_user_id` = `up`.`by_user_id`
WHERE (`uf`.`user_id` = 1
    OR `up`.`by_user_id` = 1)
GROUP BY `up`.`id` 

Если это не ваш желаемый набор результатов, предоставьте больше разъяснений, и я сделаю все возможное, чтобы помочь вам.

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...