Thật buồn cười khi viết một câu hỏi khiến bạn phải suy nghĩ và thực sự giúp ích rất nhiều trong việc hình dung ra giải pháp cho vấn đề của chính bạn.
Tôi đã có thể giải quyết vấn đề này bằng cách chỉ cần thêm phần phân trang của truy vấn vào truy vấn phụ của truy vấn chính của tôi, thay vì vào chính truy vấn chính.
Ví dụ:thay vì làm:
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;
Tôi đang làm điều này:
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;
Hy vọng điều này cũng giúp ích cho những người khác.