Du kan göra det genom att ändra din fråga till :
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
Den väljer också användarens egna inlägg. Hoppas detta skulle hjälpa.
Uppdaterad :Lade till GROUP BY POSTS.POSTID
så dubbletter tas bort eftersom du bara letar efter data i POSTS
bord.
När du kör en fråga som att skicka värden, t.ex. för användare med id 1 ser frågan ut så här:
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
Resultaten är:
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
Detta är vad du får när du skickar värden till urvalsfrågan korrekt. Värdena som skickades till SUBSCRIBERID
och AUTHORID
bör vara samma. LEFT JOIN skulle lösa ditt problem.