sql >> Databasteknik >  >> RDS >> Mysql

vänster gå samman multiplicera värden

Mitt knäskott är en underfråga:

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

Jag är inte riktigt säker på vad du kan göra för att undvika detta. Du ser förväntat (och allmänt önskat beteende).

Naturligtvis, om du vet att ID:en i båda inte kommer att upprepa sig, kan du använda distinkt:

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


  1. skapa trädvy looping fråga

  2. Förbättra MySQL-prestanda på en Run-Once Query med en stor datamängd

  3. TAN() Funktion i Oracle

  4. Skapa en app för Django Movie Recommendation med Jaccard Index