Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

junção esquerda multiplicando valores


Meu reflexo é uma subconsulta:
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

Não tenho certeza do que você pode fazer para evitar isso. Você está vendo o comportamento esperado (e geralmente desejado).

Claro, se você sabe que os IDs em ambos não se repetirão, você pode usar distinct:
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