【问题标题】:Grails: Join on two columns of the same tableGrails:加入同一张表的两列
【发布时间】:2018-01-17 02:59:35
【问题描述】:

如何将此 SQL 查询转换为 grails 中的条件或 HQL 查询

select  distinct(x.id) 
FROM y INNER JOIN x ON y.x_id =x.id  OR y.x2_id=x.id

其中 x_id 和 x2_id 是 x 表的外键

【问题讨论】:

    标签: grails hql grails-orm criteria


    【解决方案1】:

    这应该可以解决问题,

    select distinct(y.id) from Y y 
    left join y.x1 x1
    left join y.x2 x2
    

    如果没有,那么

    select distinct(y.id) from Y y 
    full join y.x1 x1
    full join y.x2 x2
    

    如果他们没有连接,试试这个

    select distinct(x.id) from X x, Y y 
    where y.xId1 = x.id or y.xId2 = x.id
    

    注意:如果您可以共享两个域类,将会很有帮助。顺便说一句,我没有环境,所以不能尝试这些。

    【讨论】:

    • 您好,谢谢您的回复,我已经尝试过这个,我得到了一个 org.hibernate.hql.internal.ast.QuerySyntaxException 消息路径,期望加入!
    • 见我的附录。
    猜你喜欢
    • 2016-04-05
    • 1970-01-01
    • 2021-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多