Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Pokazywanie postów subskrybenta i własnych postów użytkownika

Możesz to zrobić modyfikując zapytanie, aby:

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 

Wybiera również własne posty użytkownika. Mam nadzieję, że to pomoże.

Zaktualizowano :Dodano GROUP BY POSTS.POSTID więc duplikaty są usuwane, gdy szukasz tylko danych w POSTS tabela.

Kiedy uruchamiasz zapytanie, takie jak przekazywanie wartości - Np. dla użytkownika o id 1 zapytanie wygląda tak:

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

Wyniki to:

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

Oto, co otrzymujesz, gdy prawidłowo przekazujesz wartości do zapytania wybierającego. Wartości przekazane do SUBSCRIBERID i AUTHORID powinien bądź taki sam. LEFT JOIN naprawi Twój problem.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Spowolnienie szybkości wstawiania wraz ze wzrostem tabeli w mysql

  2. Ustaw stoły obok siebie zamiast prosto w dół, wykonując pętlę while

  3. OpenSSL - błąd 18 przy wyszukiwaniu głębokości 0:samopodpisany certyfikat

  4. replikacja mysql - od mistrza do niewolnika

  5. Dane znakowe nie są przekazywane z php do jquery