如何基于字段查询具有单个子对象的表中的对象的sql?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何基于字段查询具有单个子对象的表中的对象的sql?相关的知识,希望对你有一定的参考价值。

我现在拥有的是:

与所有社区等获得List<Town>

(Town) em.createQuery(from Town towns"
        + " left join fetch towns.neighborhoods neighborhood"
        + " left join fetch neighborhood.population population"
        + " left join fetch population.age age"
        + " where age.value = :ageValue")
       .setParameter("ageValue", ageValue)

我希望得到一个List<Town>只有一个邻居,这是neighborhood.creationDate的第一个。

我怎么做 ?

我不想把它们全部拿走然后删除它。

谢谢。

答案

我建议在where子句中添加一个子查询,如下所示:

where age.value = :ageValue 
    AND neighborhood.creationDate = 
         (Select max(nh.creationDate) From Neighborhood nh 
               where nh.townsId = towns.townsId)

以上是关于如何基于字段查询具有单个子对象的表中的对象的sql?的主要内容,如果未能解决你的问题,请参考以下文章

MySQL学习——SQL查询语句(连接查询&子查询)

如何从具有字典列表的表中查询,仅针对某些键 (BigQuery) SQL

如何将具有 70 个字段的 java 对象发送到具有相同字段数的对象的 pl sql 过程

mybitis中对象字段与表中字段名称不匹配(复制)

如何修改sql server 2000 里的表中的内容?

oracle如何导出具有clob字段类型的sql?