У меня есть три запроса 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))
Это был в значительной степени выстрел в темноте, и он эффектно провалился. Я понятия не имею, как объединить эти три запроса, кто-нибудь подскажет?
Изменить для уточнения: мне нужно, чтобы этот запрос был соединением пользовательской таблицы с указанными выше запросами, потому что мне нужно иметь возможность выбрать все идентификаторы пользователей, упорядоченные по сумме_значения. Три предыдущих запроса выполнялись по отдельности и параметризовались одним идентификатором пользователя.
Дальнейшее редактирование: пробовал все варианты объединения, все присоединенные к пользовательскому запросу, я мог подумать, что это не работает. Он очень близок к работе с некоторыми настройками, но все равно возвращает неверные значения. Я не совсем уверен, почему он это делает.