Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Anzeigen von Abonnentenbeiträgen und eigenen Beiträgen des Benutzers

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.