2017-02-17 88 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更可讀。