我希望基于属性获得不同的结果,但是在select中返回id,因为我将在子查询中使用它。
e.g。
(List<Article>) session.createQuery("from Article a where a.id in (select distinct a2.title from article a2 where a2.body = :body");
setString("body", "")
.list();
关键部分是子查询,我想返回id,而不是a2.title属性。 可以这样做吗?
(表格文章有重复,所以我只想返回其中任何一个,只要body =“”就没关系。
答案 0 :(得分:2)
这是什么SQL服务器?
除了使用distinct之外,你可以只要求返回一行,然后你只需要选择你真正需要的字段。
在PL \ SQL(Oracle)中,您可以使用rownum:
where rownum = 1
在其他SQL中,您可以使用限制:
Limit 1
答案 1 :(得分:2)
如果您不关心返回哪一行,可以将子查询更改为:
select MIN(a2.id) from article a2 where a2.body = :body
这将返回id
与article
匹配的最低body
。