Можете да го направите, като промените заявката си на:
SELECT POSTS.*
FROM POSTS
LEFT JOIN SUBSCRIBERS
ON POSTS.AUTHORID = SUBSCRIBERS.PROFILEID
WHERE SUBSCRIBERS.SUBSCRIBERID = ? OR POSTS.AUTHORID = ?
GROUP BY POSTS.POSTID ORDER BY POSTS.POSTID DESC LIMIT 10
Той избира и собствените публикации на потребителя. Надявам се това да помогне.
Актуализирано:Добавено GROUP BY POSTS.POSTID
така че дубликатите се премахват, тъй като търсите данни само в POSTS
таблица.
Когато изпълнявате заявка като предаване на стойности - Напр. за потребител с идентификатор 1 заявката изглежда така:
SELECT POSTS.*
FROM POSTS
LEFT JOIN SUBSCRIBERS
ON POSTS.AUTHORID = SUBSCRIBERS.PROFILEID
WHERE SUBSCRIBERS.SUBSCRIBERID = 1 OR POSTS.AUTHORID = 1 GROUP BY POSTS.POSTID
ORDER BY POSTS.POSTID DESC LIMIT 10
Резултатите са:
PostID AuthorID PostDate PostBody
3 1 2012-12-21 Oh Wait
2 3 2012-12-21 Bye Bye World
1 2 2012-12-20 Hello Word
Това е, което получавате, когато подадете правилно стойности към заявката за избор. Стойностите, предадени на SUBSCRIBERID
и AUTHORID
трябва бъдете същите. LEFT JOIN ще реши проблема ви.