有人可以帮我写标准中的以下查询吗?我不知道怎么做那个子选择。
select * from modulo m
left outer join grupomodulo gm on m.grupomodulo_id = gm.Id
left outer join grupousuariomodulos gum on gum.modulo_id = m.Id
left outer join grupousuario gu on gum.grupousuario_id = gu.Id
where exists
(
select Id from
(
select distinct(sm.Id), sm.nome from modulo sm
left outer join grupomodulo sgm on sm.grupomodulo_id = sgm.Id
left outer join grupousuariomodulos sgum on sgum.modulo_id = sm.Id
left outer join grupousuario sgu on sgum.grupousuario_id = sgu.Id
order by sm.Nome
limit 10 offset 10
)
as subquery
where Id = m.Id
)
order by m.Nome
答案 0 :(得分:0)
子选择需要通过Subqueries完成。
DetachedCriteria subCriteria = DetachedCriteria.forClass(Modulo.class, "modulo");
criteria.add(Subqueries.exists(subCriteria));
请注意,这不是order by
和limit
。我先看看这是否有效,然后查看排序和限制。如果没有详细信息,我假设joins
域类已经完成了Modulo
。