使用名为查询的数据 jpa 返回具有不同列值的行

Posted

技术标签:

【中文标题】使用名为查询的数据 jpa 返回具有不同列值的行【英文标题】:Returning rows with distinct column value with data jpa named query 【发布时间】:2018-07-22 03:04:42 【问题描述】:

假设我有一个包含 3 列 ID、名称、城市的表,并且我想使用命名查询返回具有唯一城市的行..可以做到吗?

【问题讨论】:

【参考方案1】:

您是否在询问是否可以编写一个查询,该查询将返回恰好出现在一行中的城市,在具有 ID/名称/城市三元组的表中,同一个城市可能有多行但不同名字? 如果是这样,它将取决于幕后的数据库引擎 - 但您可以尝试以下操作:

with candidates (city, num) as (
    select city, count(*) from table 
    group by city
)
select city from candidates where num = 1

或者

select t1.city from table t1
where not exists (
    select * from table t2 
    where t2.city = t1.city and t2.id <> t1.id
)

table 是这些三元组的表。

【讨论】:

以上是关于使用名为查询的数据 jpa 返回具有不同列值的行的主要内容,如果未能解决你的问题,请参考以下文章

如何在MySql中返回具有相同列值的行

连接具有相同值的行的列值(不同列的)

由Spring数据JPA为了不工作时,列值是具有标签

PostgreSQL,删除具有重新编号列值的行

计算具有3个列值的行的出现次数相同的MySQL

查询以返回在所有行中对于一列的每个不同值具有相同值的行值