使用LEFT JOIN多次关联同一个表获取数据不正确的问题
2011-08-02 12:26
477 查看
今天在使用LEFT JOIN查询数据时,遇到一个奇怪的问题(使用的是HIBERNATE框架),就是通过SQL查询出来的值,在DB2的编辑器里面 和 在程序中得到的结果不一样。
背景:
一个USER表, 一个RECORD表。
其中,RECORD表中有两个字段,分别是CREATORID, AUDITORID, 它们都与USER表的USERID关联。即外键关系。
我的查询语句如下:
SELECT RECORD.*,CREATOR.*, AUDITOR.*
FROM RECORD left join USER AS CREATOR on RECORD.CREATORID=CREATOR.USERID
left join USER AS AUDITOR on RECORD.AUDITORID=AUDITOR.USERID
该语句在DB2的编辑器中执行的结果正常。但在程序中取出到creatorid 和 auditorid 的值是一样的。
后来通过搜索,在才现在查询结果集中不能存在字段名称一样的字段。重命名字段名后正常。
修改后的SQL语句如下:
SELECT RECORD.*,CREATOR.userid AS creatorid, AUDITOR.userid AS auditorid
FROM RECORD left join USER AS CREATOR on RECORD.CREATORID=CREATOR.USERID
left join USER AS AUDITOR on RECORD.AUDITORID=AUDITOR.USERID
背景:
一个USER表, 一个RECORD表。
其中,RECORD表中有两个字段,分别是CREATORID, AUDITORID, 它们都与USER表的USERID关联。即外键关系。
我的查询语句如下:
SELECT RECORD.*,CREATOR.*, AUDITOR.*
FROM RECORD left join USER AS CREATOR on RECORD.CREATORID=CREATOR.USERID
left join USER AS AUDITOR on RECORD.AUDITORID=AUDITOR.USERID
该语句在DB2的编辑器中执行的结果正常。但在程序中取出到creatorid 和 auditorid 的值是一样的。
后来通过搜索,在才现在查询结果集中不能存在字段名称一样的字段。重命名字段名后正常。
修改后的SQL语句如下:
SELECT RECORD.*,CREATOR.userid AS creatorid, AUDITOR.userid AS auditorid
FROM RECORD left join USER AS CREATOR on RECORD.CREATORID=CREATOR.USERID
left join USER AS AUDITOR on RECORD.AUDITORID=AUDITOR.USERID
相关文章推荐
- 1 开发一个注重性能的JDBC应用程序不是一件容易的事. 当你的代码运行很慢的时候JDBC驱动程序并不会抛出异常告诉你。 本系列的性能提示将为改善JDBC应用程序的性能介绍一些基本的指导原则,这其中的原则已经被许多现有的JDBC应用程序编译运行并验证过。 这些指导原则包括: 正确的使用数据库MetaData方法 只获取需要的数据 选用最佳性能的功能 管理连
- 有关使用 GPS Intermediate Driver 无法获取到GPS数据的一个问题
- 有关使用 GPS Intermediate Driver 无法获取到GPS数据的一个问题
- 有关使用 GPS Intermediate Driver 无法获取到GPS数据的一个问题
- 有关使用 GPS Intermediate Driver 无法获取到GPS数据的一个问题
- 使用空间索引获取几何数据的问题
- (转载) socket:10038错误{winSock的一个bug:当closesocket多次错误使用时会导致问题}
- ant使用ftp上传数据时配置的一个报错问题
- 关于通过GPS模块获取的坐标数据无法在Google地图上正确标记的问题说明
- 使用 SQL 语句从数据库一个表中随机获取一些数据
- 使用AR连接关联的数据表获取数据
- 多次惨痛教训告诉我, 以时间戳获取数据必须设一个提前量
- 非正确使用浮点数据由项目产生BUG讨论的问题
- 使用java调用C语言的方法,让java获取串口数据并生成一个String对象的代码。
- 【Transact-SQL】SQL Server自动把left join自动转化为inner join、以及关联时的数据重复问题
- 在使用ajax向后台发送json数据,存在格式不正确的问题
- 使用EasyUI 的上传文件控件 easyui-filebox 获取其数据的问题
- 如何解决在ie下,Echarts多次使用setOption更改数据时,数据错乱问题
- 【Transact-SQL】SQL Server自动把left join自动转化为inner join、以及关联时的数据重复问题
- Android 使用WebView 时获取数据出现编码不正确的解决方法