2017-02-17 79 views
0

我在查找用户提出的问题数,包括零值。此查询检索计数大于零的用户提问的计数,但排除零计数。我如何编辑它,以便它也包含零计数?SQL查询丢失0计数

  select public.challenges_participations.user_id 
       , count(public.questions.question_id) 
      from public.questions 
left outer join public.challenges_participations 
      on public.questions.user_id = public.challenges_participations.user_id 
      where public.challenges_participations.challenge_id ILIKE 'pl%' 
     group by public.challenges_participations.user_id 
       ; 
+1

user_id是否存在于左表中?如果是这样,那么你会得到一个空记录。如果没有,你什么也得不到。 – durbnpoisn

回答

1

因为左连接表列中的WHERE谓词禁止的。这个空

where public.challenges_participations.challenge_id ILIKE 'pl%' 

包含到ON子句

on 
public.questions.user_id=public.challenges_participations.user_id 
and public.challenges_participations.challenge_id ILIKE 'pl%' 

BTW别名可以让你的SQL更可读。