PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Jak zastosować paginację do wyniku zapytania SQL za pomocą złączeń?

To zabawne, jak napisanie pytania skłania do myślenia i bardzo pomaga w wymyśleniu rozwiązania własnego problemu.

Udało mi się rozwiązać ten problem, po prostu dodając część zapytania dotyczącą stronicowania do podzapytania mojego głównego zapytania, a nie do samego zapytania głównego.

Na przykład zamiast robić:

SELECT client.id, client.name ...
FROM clients AS client
LEFT JOIN client_account_types AS cat ON client.id = cat.client_id
FULL JOIN account_types AS at ON cat.account_type_id = at.id
ORDER BY client.name ASC
LIMIT 10 OFFSET 30;

Robię to:

SELECT client.id, client.name ...
FROM (
    SELECT * FROM clients
    ORDER BY name ASC
    LIMIT 10 OFFSET 0
) AS client
LEFT JOIN client_account_types AS cat ON client.id = cat.client_id
FULL JOIN account_types AS at ON cat.account_type_id = at.id;

Mam nadzieję, że to pomoże również innym ludziom.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak przekonwertować datę i godzinę na wartość epoki uniksowej w Postgresie?

  2. Przywróć bazę danych PostgreSQL z kopii zapasowej bez problemu z ograniczeniem klucza obcego

  3. Powolna instrukcja OR w postgresql

  4. Zwróć typ funkcji z array_agg()

  5. Jak zainstalować Gnatcoll Postgres na Linux Centos 7?