您的位置:首页 > 数据库

使用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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐