Mysql
 sql >> Database >  >> RDS >> Mysql

Visualizzazione dei post degli iscritti e dei post degli utenti

Puoi farlo modificando la tua query 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 

Seleziona anche i post dell'utente. Spero che questo possa aiutare.

Aggiornato:aggiunto GROUP BY POSTS.POSTID quindi i duplicati vengono rimossi poiché cerchi solo i dati in POSTS tabella.

Quando esegui query come il passaggio di valori, ad es. per l'utente con ID 1 la query è simile a:

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

I risultati sono:

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

Questo è ciò che ottieni quando passi correttamente i valori alla query di selezione. I valori passati a SUBSCRIBERID e AUTHORID dovrebbe essere lo stesso. Il LEFT JOIN risolverebbe il tuo problema.