首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用一对多连接进行SQL更新的方法

使用一对多连接进行SQL更新的方法
EN

Stack Overflow用户
提问于 2013-08-15 08:38:04
回答 2查看 2.2K关注 0票数 5

假设我有两张桌子,t1t2t1有两个字段,一个字段包含名为a的唯一值,另一个字段名为value。表t2有一个不包含名为b的唯一值的字段,以及一个也称为value的字段。现在,如果我使用以下更新查询(这是使用):

代码语言:javascript
复制
UPDATE t1
INNER JOIN t2 ON t1.a=t2.b
SET t1.value=t2.value

如果我有以下数据

代码语言:javascript
复制
     t1                  t2
 a  | value          b  | value
------------        ------------
'm' |  0.0           'm'|  1.1
                     'm'|  0.2

然后运行查询,在t1.value中得到什么值?我做了一些测试,但找不到一致的行为,所以我猜它可能只是没有定义。或者这种更新查询是不应该做的?关于我为什么要这样做,有一个很长很无聊的故事,但这与我的询问的技术性质无关。

EN

Stack Overflow用户

发布于 2013-08-15 09:14:36

执行您已经指出的查询时,行‘m’的“t1”中的“值”实际上是随机的,因为“t2”具有标识值‘m’的多个行。

除非明确指定要使用最大值(max函数)、最小(min函数)或具有标识‘m’的行集合的其他聚合,否则数据库无法进行定义的选择,因此返回第一次遇到的值,因此行为不一致。

希望这能有所帮助。

票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18249064

复制
相关文章

相似问题

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