Det er sjovt, hvordan det at skrive et spørgsmål får dig til at tænke, og det hjælper faktisk meget med at forestille dig en løsning på dit eget problem.
Jeg var i stand til at løse dette problem ved blot at tilføje pagineringsdelen af forespørgslen til en underforespørgsel af min hovedforespørgsel i stedet for til selve hovedforespørgslen.
For eksempel i stedet for at gøre:
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;
Jeg gør dette:
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;
Håber dette også hjælper andre mennesker.