sql >> Base de Datos >  >> RDS >> Mysql

unir a la izquierda multiplicar valores

Mi reflejo es una 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

No estoy muy seguro de lo que puede hacer para evitar esto. Estás viendo el comportamiento esperado (y generalmente deseado).

Por supuesto, si sabe que los ID en ambos no se repetirán, puede usar distintos:

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