kmrnms Опубликовано 9 января, 2022 Жалоба Поделиться Опубликовано 9 января, 2022 (изменено) Всем привет, есть таблица которая содержит данные записей: И еще таблица которая содержит данные какой пользователь подписан на кого: Есть переменная $authedUser со значением 1 ( ID авторизованного пользователя) Я пытаюсь вывести все записи с первой таблицы, автором которого является авторизованный пользователь и все остальные записи пользователей которые есть в подписках этого пользователя: SELECT tb1.*, tb2.* FROM `posts` tb1, `follows` tb2 WHERE (tb2.user_id = '{$authedUser}' AND tb2.with_user_id = tb1.id_post_author) OR tb1.id_post_author = '{$authedUser}' ORDER by tb1.date DESC Выводятся записи пользователей которые есть в подписках, но записи автором котого является авторизованный пользователь дублируются несколько раз! В чем может быть проблема? Изменено 9 января, 2022 пользователем Kamran MUSA Ссылка на комментарий Поделиться на другие сайты Поделиться
Edward Nemirovskiy Опубликовано 9 января, 2022 Жалоба Поделиться Опубликовано 9 января, 2022 Твой вариант прикольный вывести одним запросом но я бы сделал лично так. 1. Собрал бы в переменную айди подписок (плюс свой айди) $ids = ''; foreach($db->super_query("SELECT * FROM `follows` WHERE user_id = '{$authedUser}'", true) as $fllow){ $ids .= $fllow['with_user_id'].','; } 2. Потом бы просто прогнал это так: $db->super_query("SELECT * FROM `posts` WHERE FIND_IN_SET(".substr($ids, 0, -1).", user_id) ORDER by date` DESC", true) P.s. Это как один из вариантов. Конечно лучше выводить 1 запросом но мне лень думать) 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения