aby left join było skuteczne, musisz przenieść warunek earned_trophys.user_id = 1
do on
klauzula zamiast where
.
select
trophy.name,
earned_trophys.user_id,
count(user_id) as temp
from
trophy
left join
earned_trophys
on
trophy.trophy_id = earned_trophys.trophy_id and earned_trophys.user_id = 1
group by
name