Mein Reflex ist eine Unterabfrage:
select count(capture_id) as count_captures,
(select count(id) as count_items
from items i where i.creator_user_id = captures.user_id) as count_items
from captures
where user_id = 9
Ich bin mir nicht sicher, was Sie tun können, um dies zu vermeiden. Sie sehen erwartetes (und allgemein gewünschtes) Verhalten.
Wenn Sie wissen, dass sich die IDs in beiden nicht wiederholen, können Sie natürlich „distinct“ verwenden:
SELECT COUNT( DISTINCT capture_id) as count_captures,
COUNT( DISTINCT items.id) as count_items
FROM captures
LEFT JOIN items ON captures.user_id = items.creator_user_id
WHERE user_id = 9