Я уже разместил его как different question, и я получил ответ, но сам ответ имеет недостаток.Сложение суммы Из разных таблиц
У меня есть 4 разных таблицы, и каждый из них имеет два общих поля: total_share
и idea_user_id
.
Я хочу, чтобы получить сумму "SUM из 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
Он отлично работает, но есть два вопроса:
Если
idea_submitter_percentage
не имеет кортежей, гдеidea_user_id=3
, то он возвращаетnull
, однако если в других таблицах нет записи, он не возвращаетnull
.Если все таблицы не имеет какой-либо кортежа, где
idea_user_id=3
, он возвращаетnull
, однако он должен вернуть0
.