मेरे घुटने का झटका एक सबक्वेरी है:
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
मुझे सच में यकीन नहीं है कि इससे बचने के लिए आप क्या कर सकते हैं। आप अपेक्षित (और आम तौर पर वांछित व्यवहार) देख रहे हैं।
बेशक, अगर आप जानते हैं कि दोनों में आईडी खुद को नहीं दोहराएगी, तो आप अलग का उपयोग कर सकते हैं:
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