Vous pouvez le faire en modifiant votre requête pour :
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
Il sélectionne également les messages de l'utilisateur. J'espère que cela vous aidera.
Mise à jour :Ajout de GROUP BY POSTS.POSTID
les doublons sont donc supprimés car vous recherchez uniquement des données dans POSTS
tableau.
Lorsque vous exécutez une requête comme le passage de valeurs, par exemple. pour l'utilisateur ayant l'identifiant 1, la requête ressemble à :
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
Les résultats sont :
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
C'est ce que vous obtenez lorsque vous transmettez correctement des valeurs à la requête de sélection. Les valeurs transmises à SUBSCRIBERID
et AUTHORID
devrait être le même. Le LEFT JOIN résoudrait votre problème.