【问题标题】:getting NonUniqueDiscoveredSqlAliasException获取 NonUniqueDiscoveredSqlAliasException
【发布时间】:2017-10-26 08:54:33
【问题描述】:

表结构如下

+----------------+----------+-------- +-------------+---------+--------+---------------- ---------+----------------+----------------+------ -----------------+----------+---------- ------------+-------------------+----------------+

| REDEMPTION_ID |赛迪 | MEMBERSHIP_NUMBER | POINTS_TYPE |伙伴 |方案 | REDEMPTION_ORDER_STATUS |会员段 | PARTNER_POINTS | MEMBERSHIP_FIRST_NAME | MEMBERSHIP_LAST_NAME | REDEMPTION_DATE | OUTBOUND_FILENAME | PRODUCT_TYPE |

+----------------+----------+-------- ------------+-------------+---------+--------+----- --------------------+----------------+------------ ----+-----------+---------- -+---------------------+--------------------+------ --------+

| 1003740 | 21212103 | 1231237 |基地 |澳洲航空 |签证 |订购 |遗产 | 5000.000000 | 电子|姓名 | 2017-10-23 10:26:51 | NABQF05P.012 |消费者 |

| 1003741 | 21212103 |1231238 |奖金 |澳洲航空 |签证 |订购 |遗产 | 2500.000000 |电子|名称
| 2017-10-23 10:26:51 | NABQF05P.012 |消费者 |

我想根据 Membership_Number 和 POINTS_TYPE 列对以上行进行分组,结果行应该是一行。

我正在使用以下查询:

    select * from ((
    select * from NAB_REDEMPTION_DETAILS 
where PARTNER='QANTAS' and REDEMPTION_ORDER_STATUS IN ('PLACED','RESEND') and POINTS_TYPE  = 'BASE' group by MEMBERSHIP_NUMBER) a 
left OUTER JOIN (
        select * from NAB_REDEMPTION_DETAILS 
where PARTNER='QANTAS' and REDEMPTION_ORDER_STATUS IN ('PLACED','RESEND') and POINTS_TYPE  = 'BONUS' group by MEMBERSHIP_NUMBER) b on a.MEMBERSHIP_NUMBER=b.MEMBERSHIP_NUMBER) union (
        select * from (
        select * from NAB_REDEMPTION_DETAILS 
where PARTNER='QANTAS' and REDEMPTION_ORDER_STATUS IN ('PLACED','RESEND') and POINTS_TYPE  = 'BASE' group by MEMBERSHIP_NUMBER) c right OUTER JOIN (
        select * from NAB_REDEMPTION_DETAILS 
where PARTNER='QANTAS' and REDEMPTION_ORDER_STATUS IN ('PLACED','RESEND') and POINTS_TYPE  = 'BONUS' group by MEMBERSHIP_NUMBER) d on c.MEMBERSHIP_NUMBER=d.MEMBERSHIP_NUMBER)

执行查询时出现上述异常

【问题讨论】:

  • 第 1 行) 1003740 | 21212103 | 1231237 |基地 |澳洲航空 |签证 |订购 |遗产 | 5000.000000 |电子|姓名 | 2017-10-23 10:26:51 | NABQF05P.012 |消费者行 2) 1003741 | 21212103 | 1231238 |奖金 |澳洲航空 |签证 |订购 |遗产 | 2500.000000 |电子|姓名 | 2017-10-23 10:26:51 | NABQF05P.012 |消费者 |
  • 我看不到“上述异常”。并且,更好地格式化您的问题,以便人们对其感兴趣。
  • 请找出异常 javax.persistence.PersistenceException: org.hibernate.loader.custom.NonUniqueDiscoveredSqlAliasException: Encountered a duplicated sql alias [REDEMPTION_ID] during auto-discovery
  • 嗨。 1. 查看消息的格式化版本。缩进表和代码 4 个空格。 2. 通过编辑您的帖子来澄清,而不是在 cmets 中。 3. 你的 cmets 是干什么用的? 4. 谷歌你的错误信息没有你的具体名字。 5.阅读How to Askminimal reproducible example并采取行动。
  • 谢谢philipxy,但实际上我已经使用了stackoverflow,而且我的大部分疑问已经得到解答,但是对于这个问题,其他答案并不令我满意。在这里,我正在同一张桌子上进行连接。感谢您格式化我的问题:)

标签: mysql sql hibernate


【解决方案1】:

我想通了。因为我在同一个表中使用连接并且 Redemption_id 是主键,所以导致异常。我使用 group_concat 而不是 join,它解决了我的问题。

请在链接http://sqlfiddle.com/#!9/dc59a1/5找到解决方案

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-26
    • 2020-02-24
    • 1970-01-01
    • 1970-01-01
    • 2020-11-19
    • 1970-01-01
    • 2019-02-08
    • 2018-04-06
    相关资源
    最近更新 更多