Możesz to zrobić modyfikując zapytanie, aby:
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
Wybiera również własne posty użytkownika. Mam nadzieję, że to pomoże.
Zaktualizowano :Dodano GROUP BY POSTS.POSTID
więc duplikaty są usuwane, gdy szukasz tylko danych w POSTS
tabela.
Kiedy uruchamiasz zapytanie, takie jak przekazywanie wartości - Np. dla użytkownika o id 1 zapytanie wygląda tak:
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
Wyniki to:
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
Oto, co otrzymujesz, gdy prawidłowo przekazujesz wartości do zapytania wybierającego. Wartości przekazane do SUBSCRIBERID
i AUTHORID
powinien bądź taki sam. LEFT JOIN naprawi Twój problem.