您的位置:首页 > 数据库 > MySQL

解决mysql连表查询别名不起作用,同名的字段只能显示其中一个字段值。

2017-09-12 17:49 375 查看
 最近在项目开发中的持久层(JDBC)遇到了一个这样的问题,就是mysql如果连表查询,如果两表中的字段都不相同,那么可以正常查询两表中的任意字段的值。但是如果两表中有相同字段,且想把两个字段值都取出来,并且取了别名。在navicat 中别名起作用。但是放到项目中,就达不到预期效果,结果只显示一个字段的值。

eg: 一个表 test1 含有字段 id,name,password  ,parent_id。

       


在navicat中这条语句可以正常执行,可以达到预期效果。

select t1.id id1,t2.id id2  from test1 t1 LEFT JOIN test1 t2 on t1.parent_id=t2.id



项目中的结果:


从上图可以看出,我们的别名在jdbc查询后,别名已经不起作用。

解决办法:

字段为varchar类型的用 trim(字段名) 别名 ,

字段为日期类型的用DATE_FORMAT( 字段名, '%Y-%m-%d %H:%i:%s' ) 别名

字段为数字类型的用 truncate(字段名,保留小数位数)  别名; 

上述例子:sql如果按照上述进行修改后结果就是预期的。

select truncate(t1.id,2) id1,trim(t2.id) id2  from test1 t1 LEFT JOIN test1 t2 on t1.parent_id=t2.id





内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐