Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Left Join Multiplizieren von Werten

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