如何从同一列同时更新母马行?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从同一列同时更新母马行?相关的知识,希望对你有一定的参考价值。

我有这张桌子:

我想更新列qazxsw poi以确定子查询所有记录的距离qazxsw poi

这是预期的结果:

到目前为止,我已经完成了这项工作,但我不明白如何在单个查询中为每一行进行更新

Distance

问题:如果我想要第二条记录,其中ownerid是相同的,如上面的屏幕截图所有者ID是9690,距离pe 0.000而不是72.841,我该如何修改查询?

答案

据推测,您需要一个相关的子查询。我猜:

where name='drive_through'
另一答案

您有两种选择:

A.关联子查询。这意味着添加一行将您正在更新的行连接到子查询中的一行(因为当前子查询将返回许多行,因此错误):

UPDATE Action
SET [distance] = (SELECT [distance]
                  FROM Action
                  WHERE [name] = 'travel')
WHERE [name] = 'drive_through'

B.使用联接

UPDATE Action
    SET [distance] = (SELECT SUM([distance])
                      FROM Action a2
                      WHERE [name] = 'travel' AND a2.ownerID = Action.ownerId
                    )
   WHERE [name] = 'drive_through';
另一答案

一种可能的解决方案是使用JOIN与同一个表的另一个实例。

UPDATE A
SET [distance] = (SELECT DISTINCT [distince]
                  FROM Action A2
                  WHERE [name] = 'Travel'
                  AND A.ownerID = A2.ownerID) --Here
FROM Action A
WHERE [name] = 'drive_through'

以上是关于如何从同一列同时更新母马行?的主要内容,如果未能解决你的问题,请参考以下文章

如何从同一片段中的关闭按钮关闭片段?

Sublime Text2 如何实现块选择,就是像notepad++里面的一样,按住alt键,可以选择多个行的同一列。

如何从熊猫的同一列中创建一个行值数组?

如何从表中提取行,用不同的值过滤同一列?

如何使用同一表中的列进行更新(ORACLE)

mysql查询后对同一行进行更新