免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 6859 | 回复: 4
打印 上一主题 下一主题

多表 sql 语句中指定列别名为何不行 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-10-26 14:58 |只看该作者 |倒序浏览
为了测试方便,我在自己的sco os507虚拟机中装了informix 7.30UC2 数据库;正式数据库为Informix Dynamic Server Version 7.31.FC2  。

我在 pb中连接测试库中执行以下sql语句时, 列名是: f1, tab2_f2 ,但在正式库中是: f1, f2
select tab1.col1 f1, tab2.col2 f2 from tab1, tab2 where tab1.id = tab2.id ;

连接测试库执行: select tab2.col2 f2 from tab2 时, 列名为: f2

也就是说,在测试库上, 多表查询 sql 语句,返回结果部分列别名前加上了表名, 而单表sql查询语句则列别名正常。

pb的设置没变, informix客户端无异,应该是 informix数据库的设置问题吧? 可是我不知道问题在哪? 望赐教!谢谢!

论坛徽章:
11
金牛座
日期:2015-03-19 16:56:22数据库技术版块每日发帖之星
日期:2016-08-02 06:20:00数据库技术版块每日发帖之星
日期:2016-04-24 06:20:00数据库技术版块每日发帖之星
日期:2016-04-13 06:20:00IT运维版块每日发帖之星
日期:2016-04-13 06:20:00数据库技术版块每日发帖之星
日期:2016-02-03 06:20:00数据库技术版块每日发帖之星
日期:2015-08-06 06:20:00季节之章:春
日期:2015-03-27 15:54:57羊年新春福章
日期:2015-03-27 15:54:37戌狗
日期:2015-03-19 16:56:41数据库技术版块每日发帖之星
日期:2016-08-18 06:20:00
2 [报告]
发表于 2007-10-26 17:17 |只看该作者
这倒是没见过~~能帖个图出来吗?
一般来说,如果加了别名,则显示的是别名
如:select tab1.col1 f1, tab2.col2 f2 from tab1, tab2 where tab1.id = tab2.id ;
显示的应该就是 f1 f2

论坛徽章:
0
3 [报告]
发表于 2007-10-27 08:49 |只看该作者


[ 本帖最后由 f413537775 于 2007-10-27 08:51 编辑 ]

论坛徽章:
0
4 [报告]
发表于 2007-10-29 14:27 |只看该作者

:em02:

见怪不怪。 终于发现, 原来还是 pb 的问题。
首先,用其他软件,通过odbc连接informix数据库,如期返回列别名。证明问题还是在 pb。
考察pb的系统表,没找出问题。
最后想想,或许是用户权限产生的差别。因为,以前就发现不同用户连接,在数据库画笔中使用的sql语句有的是有差别要求的。tab1、tab2是以informix(dba)身份建立的,重新建一用户,只授予connect权限,结果,列别名如期所见。至于个中缘由也懒得再究(informix正在淘汰中), 反正我不用修改原有程序就能使用测试库了。

论坛徽章:
0
5 [报告]
发表于 2007-10-30 16:09 |只看该作者
可能还是表的所有者的问题吧,你的表名称前面加上表的所有者名称试试呢比如:informix.tab_name
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP