Sungguh lucu bagaimana menulis pertanyaan membuat Anda berpikir, dan sebenarnya sangat membantu dalam membayangkan solusi untuk masalah Anda sendiri.
Saya dapat memecahkan masalah ini hanya dengan menambahkan bagian pagination dari kueri ke sub-kueri dari kueri utama saya, bukan ke kueri utama itu sendiri.
Misalnya, alih-alih melakukan:
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;
Saya melakukan ini:
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;
Semoga ini bisa membantu orang lain juga.