sql >> Databáze >  >> RDS >> PostgreSQL

Jak použít stránkování na výsledek SQL dotazu s Joins?

Je legrační, jak vás psaní otázky nutí přemýšlet a ve skutečnosti hodně pomáhá při představě řešení vašeho vlastního problému.

Tento problém se mi podařilo vyřešit jednoduchým přidáním stránkovací části dotazu do dílčího dotazu mého hlavního dotazu, nikoli do samotného hlavního dotazu.

Například místo provedení:

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;

Dělám toto:

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;

Doufám, že to pomůže i ostatním.



  1. spusťte skript Oracle SQL z jazyka Java

  2. Použijte tnsnames.ora v Oracle SQL Developer

  3. Jak nastavit globální velikost innodb_buffer_pool_size?

  4. PHP Postgres:Získejte ID poslední vložky