有没有人能帮我写下下面的查询条件?我不知道如何进行二次选择。
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发布于 2013-11-07 05:30:31
子选择需要通过Subqueries完成。
DetachedCriteria subCriteria = DetachedCriteria.forClass(Modulo.class, "modulo");
criteria.add(Subqueries.exists(subCriteria));注意,这是没有order by和limit的。我会先看看这是否有效,然后再看看排序和限制。没有详细信息,我假设joins已经在您的Modulo域类中完成了。
https://stackoverflow.com/questions/19820085
复制相似问题