sql >> Base de Datos >  >> RDS >> Mysql

Mostrar publicaciones de suscriptores y publicaciones propias del usuario

Puedes hacerlo modificando tu consulta a :

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 

También selecciona las publicaciones propias del usuario. Espero que esto ayude.

Actualizado:se agregó GROUP BY POSTS.POSTID por lo tanto, los duplicados se eliminan ya que solo busca datos en POSTS mesa.

Cuando ejecuta una consulta como pasar valores, por ejemplo. para el usuario que tiene id 1, la consulta se ve así:

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

Los resultados son:

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

Esto es lo que obtiene cuando pasa valores a la consulta de selección correctamente. Los valores pasados ​​a SUBSCRIBERID y AUTHORID debería ser igual LEFT JOIN solucionaría su problema.