sql >> Database >  >> RDS >> Mysql

Berichten van abonnees en eigen berichten van gebruikers weergeven

U kunt dit doen door uw zoekopdracht aan te passen naar:

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 

Het selecteert ook de eigen berichten van de gebruiker. Ik hoop dat dit zou helpen.

Bijgewerkt:GROUP BY POSTS.POSTID dus duplicaten worden verwijderd omdat u alleen naar gegevens zoekt in POSTS tafel.

Wanneer u een query uitvoert zoals het doorgeven van waarden, bijvoorbeeld. voor gebruiker met id 1 ziet de zoekopdracht er als volgt uit:

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

Resultaten zijn:

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

Dit is wat u krijgt als u waarden correct doorgeeft aan de select-query. De waarden doorgegeven aan SUBSCRIBERID en AUTHORID moeten hetzelfde zijn. De LEFT JOIN zou je probleem oplossen.




  1. PostgreSQL verbinden met R

  2. Slaapstand:ID-generator met increment en Oracle Schema

  3. Waar is de Query Analyzer in SQL Server Management Studio 2008 R2?

  4. Een Oracle-database migreren van AWS EC2 naar AWS RDS, deel 3