编写问题如何使您思考是很有趣的,并且对于想出自己的问题的解决方案实际上有很大帮助。
通过将查询的分页部分添加到我的主查询的子查询中,而不是添加到主查询本身,就可以解决此问题。
例如,不要这样做:
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;
希望这对其他人也有帮助。