gpt4 book ai didi

mysql - 如何组合这三个查询?

转载 作者:行者123 更新时间:2023-11-29 04:30:21 25 4
gpt4 key购买 nike

我需要使用连接将三个 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

我需要以某种方式将所有这些查询组合成一个与用户表连接的查询,以便为每个 user.id 提供 sum(A.a)+sum(C.C)+sum(E.e) .我尝试了所有表的左连接

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 排序的所有用户 ID。前三个查询是单独运行的,并使用单个用户 ID 进行了参数化。

进一步编辑: 尝试了 union 的所有变体都加入到我认为的用户查询中,但它不起作用。它非常接近于进行一些调整,但它仍然返回不正确的值。我不太确定为什么要这样做。

最佳答案

也许是这样的:

select sum(sum_value), user_id from (
select
sum(A.a) as sum_value, B.userID as user_id
from A join B
on A.BID = B.id
GROUP BY B.userID

UNION ALL

select
sum(C.c) as sum_value, D.userID as user_id
from D left join (C)
on (D.id=C.DID)
GROUP BY D.userID

UNION ALL

select sum(E.e) as sum_value, E.userID as user_id from E
GROUP BY E.userID
)
GROUP BY user_id

关于mysql - 如何组合这三个查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3486413/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com