为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:dm8_20221128
【操作系统】:centos7.5
【CPU】:
【问题描述】:sys_user表和busi_users表都有一个uid字段外键关联,执行sql
select r. from sys_user r left join busi_users s using (uid)
当使用using时, 查出结果中uid字段不会被查出来
并且如果强制查询uid字段, 就会报-2127错误
自己测试下来发现,如果不使用using, 而是使用on时,查询正常,能查出uid字段
select r.* from sys_user r left join busi_users s on (r.uid=s.uid)
如果查询语句直接使用全字段查询时,就算使用using也是可以查出uid字段,只不过只查出一个uid,并不会像mysql出现2个uid,因为每个表都有uid
这个是个bug, 还是有特殊原因?
希望能说明一下具体原因,这个涉及到类似sql到底怎么写的问题了.
补充,发现如果查询s表的全字段就能查出uid
因为uid是s的主键, 是r的外键,所以达梦就把uid归类到s表内,是么?
但是这样其实还是一个bug,使用using会出现这样的问题,从sql语句中根本看不出问题,太容易对业务造成bug了.
v8.1.2.192查询结果正常,可以年后等等新版本