Я пытаюсь получить сообщения, которые принадлежат следующему пользователю в моем текущем запросе.
На данный момент я получаю: текущие сообщения пользователя – например, количество для каждого сообщения & и комментарии.
Мне нужно иметь этот результат: сообщения текущего пользователя – люди, за которыми я следую сообщениям, как и для каждого сообщения и комментариев.
Конечный результат, как и большинство домашних страниц в социальной сети. Они получают ваши сообщения и сообщения людей, за которыми вы следите / или за сообщения друзей.
Это мой текущий запрос:
SELECT Posts.id , Posts.uuid , max(case when rcom.row_number = 1 then rcom.comment end) Comment_one , max(case when rcom.row_number = 2 then rcom.comment end) Comment_two , Posts.caption , Posts.path , Posts.`date` , USERS.id , USERS.username , USERS.fullname , USERS.profileImage , COALESCE(A.LikeCNT, 0) num_likes FROM Posts INNER JOIN USERS ON Posts.id = 145 AND USERS.id = 145 LEFT JOIN ( SELECT COUNT(A.uuidPost) LikeCNT , A.UUIDPost FROM Activity A WHERE type = 'like' GROUP BY A.UUIDPOST ) A ON A.UUIDPost = Posts.uuid LEFT JOIN ( SELECT @row_num := IF(@prev_value=UUIDPOST,@row_num+1,1) as row_number , comment , uuidPost , `date` , @prev_value := UUIDPOST FROM Activity CROSS JOIN ( SELECT @row_num := 1, @prev_value := '' collate utf8_unicode_ci ) xy WHERE type = 'comment' ORDER BY uuidPost , `date` DESC ) rcom ON rcom.uuidPost = Posts.UUID AND rcom.row_number <= 2 GROUP BY Posts.id , Posts.uuid , Posts.caption , Posts.path , Posts.`date` , USERS.id , USERS.username , USERS.fullname , USERS.profileImage , COALESCE(A.LikeCNT, 0) ORDER BY date DESC ;
Как хранятся мои последователи?
Я сохраняю своих подписчиков в таблице «Активность» следующим образом: id (currentUser) – idOtherUser (Person I follow ) – type (который равен «Follow»).
Вот и все. Вот скрипт sql с некоторыми примерами данных.
Другие вопросы, пожалуйста, дайте мне знать.