Zdá se mi, že byste měli GROUP BY a.id, c.id -- seskupení podle a.id znamená, že obvykle budete mít několik c.id s za a.id , a právě získáváte „náhodný“ jeden z nich. To vypadá jako otázka základní správnosti. Jakmile to opravíte, úvodní SELECT COUNT(*) FROM atd. atd. by vám pak určitě měly poskytnout počet řádků, které vrátí následující dotaz, abyste si podle toho mohli připravit svůj pager.