我有两个类。为简单起见,我删除了不相关的数据。我需要将订单加入调查,反之亦然。
我知道我可以跑select * from Order o right join order.survey s where s.id='x'
然而,这不是我想做的。我想用左外连接将 Order 加入到调查中,但调查在类中没有 Order 类的实例。订单包含一个调查类的实例,这就是为什么从订单类连接表更容易的原因。我在 Grails 中使用 SQL 完成了它,但是我想知道如何使用 hql 完成它。
sql代码如下。
Select survey.*,ao.* from survey sr left outer join order ao on ao.survey_id=sr.id
型号如下
class Order{
Survey survey
}
class Survey {
}
最佳答案
试试这个:
SELECT sr, (SELECT ao FROM namespace.Order ao WHERE ao.survey = sr.id)
FROM namespace.Survey sr
您列出所有调查对象,如果存在关联的订单,您将通过子查询获得
关注:我添加了命名空间术语,您将使用命名空间类进行更改
关于Grails 连接表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44773473/