首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mysql更新另一个表的和中的两列,该表按id分组

问Mysql更新另一个表的和中的两列,该表按id分组
EN

Stack Overflow用户
提问于 2013-11-23 04:42:43
回答 3查看 1.5K关注 0票数 2

我需要的是一个sql为以下我有表

代码语言:javascript
复制
P which has columns PID, X, DX (PID is PK)
E which as columns EID, PID, X (EID is PK)

表E的每个PID都有多个条目

不起作用的语句是

代码语言:javascript
复制
update P,E set P.X=P.X+E.X, P.DX = E.X where P.PID = E.PID

我认为它应该是一个更新P集P.X = ?,P.DX =?select( Sum(X) from E group by PID) (从E组中按PID选择Sum(X))

但我不知道如何获取select的输出,并将其与P连接,并在每行上设置两个值;

任何帮助都将不胜感激!

EN

回答 3

Stack Overflow用户

发布于 2013-11-23 04:47:08

您需要在update查询中使用join,mysql支持多表UPDATE,正如Bill karvin建议的

代码语言:javascript
复制
UPDATE P  JOIN E ON (P.PID = E.PID)
SET P.X=P.X+E.X, P.DX = E.X 
票数 0
EN

Stack Overflow用户

发布于 2013-11-23 04:48:02

尝尝这个

代码语言:javascript
复制
update P set P.X= (select sum(x) from E where e.pid=p.pid)
票数 0
EN

Stack Overflow用户

发布于 2013-11-23 13:02:40

@dianuj的答案是正确的语法。

但是你有一对多的关系。因此,一个PID具有2+值,不能保证哪个值被更新。

如果你不关心这个的话。@dianuj的查询是OK的。但是,只允许更新一个值。这个问题可能会对你有所帮助。UPDATE Syntax with ORDER BY, LIMIT and Multiple Tables

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20154108

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档