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

Как да приложа пагинация към резултата от SQL заявка с Joins?

Странно е как писането на въпрос те кара да мислиш и всъщност помага много да си представиш решение на собствения си проблем.

Успях да разреша този проблем, като просто добавих частта за страниране на заявката към подзаявка на основната ми заявка, а не към самата основна заявка.

Например, вместо да направите:

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;

Правя това:

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;

Надявам се това да помогне и на други хора.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. НЕ МОЖЕ ДА СЕ ПРЕДОСТАВЯ СЪЗДАВАНЕ НА ИЗГЛЕД НА СХЕМА

  2. Linux файлови системи и контролни точки на PostgreSQL

  3. Получаването не може да се ангажира, когато е активирано автоматично изключение при работа с CachedRowSet в JDBC

  4. Досадно предупреждение за Puppet и Postgres:Предаването на версия към postgresql::server е отхвърлено

  5. Ляво външно съединение, действащо като вътрешно съединение