U kunt dit doen door uw zoekopdracht aan te passen naar:
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
Het selecteert ook de eigen berichten van de gebruiker. Ik hoop dat dit zou helpen.
Bijgewerkt:GROUP BY POSTS.POSTID
dus duplicaten worden verwijderd omdat u alleen naar gegevens zoekt in POSTS
tafel.
Wanneer u een query uitvoert zoals het doorgeven van waarden, bijvoorbeeld. voor gebruiker met id 1 ziet de zoekopdracht er als volgt uit:
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 zijn:
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
Dit is wat u krijgt als u waarden correct doorgeeft aan de select-query. De waarden doorgegeven aan SUBSCRIBERID
en AUTHORID
moeten hetzelfde zijn. De LEFT JOIN zou je probleem oplossen.