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

Czy można LIMIT wyników z zapytania JOIN?

Ten powinien zawierać Twoje posty z trzema najnowszymi komentarzami na post, zakładając, że Twoje tabele wyglądają tak:

opublikuj :
id , post_text

komentarz :
id , post_id , comment_text

SELECT id, post_text, comment_text
FROM
(
    SELECT p.id, p.post_text, c.comment_text
           CASE
             WHEN @id != p.id THEN @row_num := 1
             ELSE @row_num := @row_num + 1
           END AS rank,
           @id := p.id
    FROM post p
    LEFT JOIN comment c ON ( c.post_id = p.id )
    JOIN ( SELECT @id:=NULL, @row_num:=0 ) x
    ORDER BY p.id,
             c.id DESC -- newest comments first
) y
WHERE rank <= 3;

Podzapytanie służy najpierw do pobrania ostatnich komentarzy i ponumerowania ich według posta, podczas gdy zewnętrzne zaznaczenie usuwa starsze komentarze.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wymuszanie wszystkich wierszy z pierwszej tabeli złączenia

  2. Tworzenie pliku Excel z MySQL

  3. Utworzono nową zmienną, pobierając wartość z tabeli MySQL

  4. Błąd Rubiego mysql2

  5. Nielegalna próba zmapowania niekolekcji jako @OneToMany, @ManyToMany lub @CollectionOfElements