使用LEFT JOIN多次关联同一个表获取数据不正确的问题

今天在使用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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值