我已经把它作为一个不同的问题发布了,我得到了答案,但答案本身就有缺陷。
我有 4 个不同的表,每个表都有两个共同的字段total_share
和idea_user_id
.
我想从所有表中获取“总份额的总和”的总和
这是我的查询
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
它工作正常,但有两个问题:
如果
idea_submitter_percentage
没有任何元组 whereidea_user_id=3
,则返回null
,但是如果其他表没有条目,则不会返回null
。如果所有表都没有任何元组 where
idea_user_id=3
,它会返回null
,但它应该返回0
。