如何基于字段查询具有单个子对象的表中的对象的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?的主要内容,如果未能解决你的问题,请参考以下文章

Laravel:如何查询包含json数据的表中的列并仅返回查询匹配的对象

BigQuery 将查询结果附加到具有必填字段的表中

在引用其他表时在单个表上使用Delete查询

如何从1个表中选择许多行并将其插入另一个表中特定行的特定JSONB字段中?但是在单个原始SQL查询中

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

ORM跨表查询