2017-09-26 5 views
0

私のクエリは次のとおりです。Postgresが左表のヌルで登録しよう

SELECT main.group_id, s_ref.title, s_ref.username, main.m_per_group, main.pos, u.lang 
FROM (
    SELECT user_id, group_id, COUNT(user_id) AS m_per_group, 
     ROW_NUMBER() OVER (
      PARTITION BY group_id 
      ORDER BY COUNT(group_id) DESC 
      ) AS pos 
    FROM messages 
    WHERE message_date > date_trunc('week', now()) 
    GROUP BY group_id, user_id 
) AS main 
LEFT OUTER JOIN supergroups_ref AS s_ref 
USING (group_id) 
RIGHT JOIN users AS u 
ON u.user_id = main.user_id 
WHERE main.user_id = %s 
ORDER BY m_per_group DESC 

問題はメイン戻り0の要素は、私が手でもないしていない場合に、ユーザーのユーザーの言語が登録しようということですが、私は正確に[]を取得します

代わりに[(None, None, None, None, 'en')]を取得したいのですが、これは私が正しい結合を使用した理由です。どのように私は望む結果を得ることができますか?

答えて

0

移動この条件:メインサブクエリに

WHERE main.user_id = %s 

WHERE message_date > date_trunc('week', now()) and main.user_id = %s 

それは今では、内側に加わる外部結合を旋回される方法。

関連する問題