kmrnms Posted January 9 Report Share Posted January 9 (edited) Всем привет, есть таблица которая содержит данные записей: И еще таблица которая содержит данные какой пользователь подписан на кого: Есть переменная $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 Выводятся записи пользователей которые есть в подписках, но записи автором котого является авторизованный пользователь дублируются несколько раз! В чем может быть проблема? Edited January 9 by Kamran MUSA Quote Link to comment Share on other sites More sharing options...
Edward Nemirovskiy Posted January 9 Report Share Posted January 9 Твой вариант прикольный вывести одним запросом но я бы сделал лично так. 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 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.