Sie können dies tun, indem Sie Ihre Abfrage ändern in:
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
Es wählt auch die eigenen Beiträge des Benutzers aus. Hoffe, das würde helfen.
Aktualisiert:GROUP BY POSTS.POSTID
hinzugefügt Duplikate werden also entfernt, da Sie nur in POSTS
nach Daten suchen Tabelle.
Wenn Sie eine Abfrage wie das Übergeben von Werten ausführen, z. Für Benutzer mit der ID 1 sieht die Abfrage folgendermaßen aus:
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
Ergebnisse sind:
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
Dies erhalten Sie, wenn Sie Werte richtig an die Auswahlabfrage übergeben. Die an SUBSCRIBERID
übergebenen Werte und AUTHORID
sollte gleich sein. Der LEFT JOIN würde Ihr Problem beheben.