暂无图片
OB 多表更新规则
我来答
分享
暂无图片 匿名用户
OB 多表更新规则

【 使用版本 】5.7.25 OceanBase_CE 4.1.0.0
【问题描述】多表更新时,更新结果与MYSQL不一致
令表1作为更新表,表2作为更新依赖表,将表2的内容更新入表1,当表2的多行数据符合where后的约束条件时,如何选择相应的某一行作为更新数据;mysql的规则应当是取所有符合条件的行中第一行,想请问OB的规则是怎样的。
【复现路径】SQL语句如下:
create table t1(id int,age char(4));
create table t2(id int,name char(4));
insert into t1 values(1,‘a’),(1,‘b’),(1,‘c’),(2,‘a’),(3,‘ff’),(3,‘dd’);
insert into t2 values(1,‘hhh’),(1,‘ggd’),(2,‘kdd’),(1,‘xxc’),(2,‘33g’);
update t1,t2 set t1.age=t2.name where t1.id=t2.id;
select * from t1;
【问题现象及影响】
下方第一张图为OB更新后结果,第二张图为MYSQL更新后结果,想请问为什么为选取到(1,‘xxc’),(2,‘33g’)这两条记录来更新
OB:

1697719838529


MYSQL:

1697719942844

我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新
O
OceanBase社区传送门

ob 是 用了 相同 id的 最后行结果
mysql 是 用了 相同 id的 第一行 结果
其实 这种 两个 都是 错的,还是要 多给点条件的

暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏