すでに別の質問として投稿し、回答を得たのですが、回答自体に不備があります。
4 つの異なるテーブルがあり、それぞれに共通の 2 つのフィールドtotal_share
とidea_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 つの問題があります。
idea_submitter_percentage
タプル where がない場合はidea_user_id=3
を返しますがnull
、他のテーブルにエントリがない場合はを返しませんnull
。すべてのテーブルにタプル where がない場合
idea_user_id=3
、 が返されますが、返さnull
れるはず0
です。