Mysql
 sql >> база данни >  >> RDS >> Mysql

Показване на публикации на абонати и собствени публикации на потребителя

Можете да го направите, като промените заявката си на:

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 

Той избира и собствените публикации на потребителя. Надявам се това да помогне.

Актуализирано:Добавено GROUP BY POSTS.POSTID така че дубликатите се премахват, тъй като търсите данни само в POSTS таблица.

Когато изпълнявате заявка като предаване на стойности - Напр. за потребител с идентификатор 1 заявката изглежда така:

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

Резултатите са:

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

Това е, което получавате, когато подадете правилно стойности към заявката за избор. Стойностите, предадени на SUBSCRIBERID и AUTHORID трябва бъдете същите. LEFT JOIN ще реши проблема ви.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. използвайки where и inner join в mysql

  2. Как да избегнем MySQL 'Намерено заключване при опит за заключване; опитайте да рестартирате транзакцията"

  3. Показва се само първият ред от sql заявката

  4. Как да създадете блог в PHP и MySQL база данни - DB дизайн

  5. Филтриране на набор от резултати от MySQL заявка за получаване на множество повторения в рамките на определен период от време