0

すでに別の質問として投稿し、回答を得たのですが、回答自体に不備があります。

4 つの異なるテーブルがあり、それぞれに共通の 2 つのフィールドtotal_shareidea_user_id.

すべてのテーブルから「SUM of total_share」の合計を取得したい

これが私のクエリです

SELECT SUM
        (
            ifnull(s.total_share, 0) + 
            ifnull(r.total_share, 0) + 
            ifnull(c.total_share, 0) +  
            ifnull(p.total_share, 0)
        ) as total_sum
FROM idea_submitter_percentage s
left outer join idea_revisor_percentage r on r.idea_user_id = s.idea_user_id
left outer join idea_contributor_percentage c on c.idea_user_id = s.idea_user_id
left outer join idea_comparisor_percentage p on p.idea_user_id = s.idea_user_id
WHERE s.idea_user_id = 3

正常に動作しますが、次の 2 つの問題があります。

  1. idea_submitter_percentageタプル where がない場合はidea_user_id=3を返しますがnull、他のテーブルにエントリがない場合はを返しませんnull

  2. すべてのテーブルにタプル where がない場合idea_user_id=3、 が返されますが、返さnullれるはず0です。

4

1 に答える 1