如何在SQL中创建5层嵌套联接
我对SQL非常陌生。我的情况是,我需要对数据帧的val列中的所有元素执行求和,其中数据帧中的每个元素都有一个id V,该id V和E数据帧中的组id Y相关联。列V通过id链接到列E,可以跨5个表使用JOIN进行连接。示意图上,我尝试执行的操作是:如何在SQL中创建5层嵌套联接,sql,join,nested,Sql,Join,Nested,我对SQL非常陌生。我的情况是,我需要对数据帧的val列中的所有元素执行求和,其中数据帧中的每个元素都有一个id V,该id V和E数据帧中的组id Y相关联。列V通过id链接到列E,可以跨5个表使用JOIN进行连接。示意图上,我尝试执行的操作是: (psuedocode) A.V join with B.V B.W join with C.W C.X join with D.X D.Y join with E.Y sum all A.val grouped by id E.Y 到目前为止,我
(psuedocode)
A.V join with B.V
B.W join with C.W
C.X join with D.X
D.Y join with E.Y
sum all A.val grouped by id E.Y
到目前为止,我一直无法让所有的连接正常工作。我对前两个联接的SQL语句是:
SELECT *
FROM (SELECT * FROM A
INNER JOIN B
ON (A.V= B.V) AS output1)
INNER JOIN C
ON (output1.W = C.W);
我收到一条错误消息,说明AS子句附近有问题,有经验的人能给我指出正确的方向吗?我想这就是您需要的:
Select E.Y, Sum(A.Val) SumOfVal
From A join B on A.V = B.V
join C on B.W = C.W
join D on C.X = D.X
join E on D.Y = E.Y
Group by E.Y
如果需要将
Id
放入结果集中,也可以将其添加到group by
子句中。我认为这就是您需要的:
Select E.Y, Sum(A.Val) SumOfVal
From A join B on A.V = B.V
join C on B.W = C.W
join D on C.X = D.X
join E on D.Y = E.Y
Group by E.Y
如果需要将
Id
添加到结果集中,也可以将其添加到group by
子句中。几乎所有数据库引擎都允许您以与您描述的方式非常相似的方式进行连接:
select id, E.Y, sum(A.val)
from A join
B
on A.V = B.V join
C
on B.W = C.W join
D
on C.X = D.X join
E
on D.Y = E.Y
grouped by id, E.Y;
您的SQL技能似乎有点弱。我建议您使用书籍或在线资源研究一下SQL语法。几乎所有数据库引擎都允许您以与您描述的方式非常相似的方式进行连接:
select id, E.Y, sum(A.val)
from A join
B
on A.V = B.V join
C
on B.W = C.W join
D
on C.X = D.X join
E
on D.Y = E.Y
grouped by id, E.Y;
您的SQL技能似乎有点弱。我建议您使用书籍或在线资源学习一点SQL语法。这是非常正确的!不幸的是,我也在赶最后期限。我很抱歉把时间浪费在基本问题上,作为回报,我所能做的就是承诺在某个时候提前支付。这是真的!不幸的是,我也在赶最后期限。我很抱歉在基本问题上浪费了人们的时间,作为回报,我能做的最好的事情就是承诺在某个时候提前回答。谢谢你花时间回答一个基本问题。谢谢你花时间回答一个基本问题。