解决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
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
相关文章推荐
- 解决mysql连表查询别名不起作用,同名的字段只能显示其中一个字段值。
- 解决mysql连表查询别名不起作用,同名的字段只能显示其中一个字段值。
- 解决Mysql数据库实现多表联合查询及按照其中一个字段进行排序问题
- 关于mysql 数据库使用spring 2.0低版本 JdbcTemplate.queryForList 查询结果别名不起作用的解决方法
- mysql两张表相同数据查询显示其中一张表的字段
- mysql正则匹配解决查询一个字段是否在另一个字段中
- 在使用Hibernate时,因为一个查询需要更多的表连接而要使用SQL来解决性能问题。然而返回的结果集中包含了没有映射的Entity类中的表字段,在这个SQL中还有使用如何将层次关系的父子结点显示为横行
- PDO 查询mysql返回字段整型变为String型解决方法
- PHP连接MySQL查询结果中文显示乱码解决方法
- SQL中查询有很多字段,就不想要其中一个的方法
- Yii1中用CDbCriteria进行多表链接查询数据只有一个表字段的解决方法 [ 1.1 版本 ]
- html多个空格只能显示一个空格解决
- mysql查询某一个字段是否包含中文字符
- MySQL中REGEXP正则查询同一个字段模糊搜索
- iOS 证书导出为p12,再导入其他电脑只能导入其中一个的解决方法
- 多对多关系中,根据其中一个字段查询另一个字段(createAlias)
- mysql 字段存储多个值 ,判断一个值是否在其中
- mysql如何查询一个表中所有字段的名字
- mysql中某个字段中其中一个字符出现的次数
- 不显示查询问题的解决(太完美了,新建一个图层,表示查询结果)