Mysql
 sql >> Base de données >  >> RDS >> Mysql

Affichage des publications des abonnés et des publications de l'utilisateur

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.