У меня есть три запроса MySQL, которые мне нужно объединить в один запрос с помощью объединений. У меня много проблем с выяснением, как это сделать. Вот три запроса.
select
sum(A.a)
from A join B
on A.BID = B.id
where B.userID=userID
select
sum(C.c)
from D left join (C)
on (D.id=C.DID)
where D.userID = userID
select sum(E.e) from E where E.userID=userID
Мне нужно как-то объединить все эти запросы в один запрос, объединенный с таблицей пользователей, чтобы получить sum(A.a)+sum(C.C)+sum(E.e)
для каждого user.id. Я попробовал левое соединение для всех таблиц
user left join (A, B, C, D, E)
on ((A.BID = B.id and B.userID=user.id)
or (D.id=C.DID and D.userID = user.id)
or (E.userID=user.id))
Это был в значительной степени выстрел в темноте, и он эффектно провалился. Понятия не имею, как объединить эти три запроса, кто-нибудь подскажет?
Изменить, чтобы уточнить: Мне нужно, чтобы этот запрос был соединением пользовательской таблицы с вышеуказанными запросами, потому что мне нужно иметь возможность выбрать все идентификаторы пользователей, упорядоченные по sum_value. Три предыдущих запроса были выполнены индивидуально и параметризованы с одним идентификатором пользователя.
Дальнейшее редактирование: Попробовал все варианты объединения, все присоединенные к пользовательскому запросу. Я мог подумать, что это не работает. Он очень близок к работе с некоторыми изменениями, но все равно возвращает неправильные значения. Я не совсем уверен, почему он это делает.