当前位置: 首页 > 知识库问答 >
问题:

在JPA中的SQL查询中的FROM语句中包含子查询

萧渝
2023-03-14

我有一个Spring Boot应用程序。在其中,我有一个SQL查询,需要创建一个子查询,内部将该子查询的结果与另一个表连接,然后从该内连接的结果中进行选择。但是很明显,JPA不允许您在OF子句中使用子查询(我假设既不使用JPQL也不使用Criteria API)。有没有办法绕过这个?

我考虑过将子查询的结果存储在一个临时实体中(理想情况下不创建可持久化到DB的表),然后从存储在这些实体中的数据中进行选择。但我不知道如何使用Spring来实现这一点。我想要比创建缓存更“临时”的东西,因为子查询的结果在执行查询后会从内存中消失。

下面是一个类似于我要执行的SQL查询:

SELECT g1.name, g1.publisher, g1.price, g1.released_at
FROM games AS g1
INNER JOIN (
  SELECT released_at, MAX(price) as price
  FROM games
  GROUP BY released_at
) AS g2
ON g2.released_at = g1.released_at AND g2.price = g1.price;

我期待这里描述的SQL查询结果:http://bernardoamc.github.io/sql/2015/05/04/group-by-non-aggregate-columns/

共有1个答案

咸晨
2023-03-14

我认为您需要这个查询:

Select g from games g where not exists (
   Select g1 from games g1 
    where g1.released_at = g.released_at and g1.price >= g.price
)
 类似资料:
  • 问题内容: 我们正在开发一个使用EJB连接到数据库的Web应用程序。 在我们的数据库模型中,我们有一个移动设备表,另一个有功能表,最后一个有手机模型映射功能值的表。模型(id_model,…)功能(id_feature,…)model_features(id_model,id_feature,值) 我们想要执行一个查询,以按匹配特征的数量对模型进行排序。就是说,我们传递了一个要匹配的功能列表(即从

  • 问题内容: 我有两个表,我需要创建一个视图。这些表是: 我使用以下查询来执行此操作。不带“创建视图”部分的查询运行良好,但带有“创建视图”的查询则显示错误“视图的SELECT在FROM子句中包含子查询”。可能是什么问题和可能的解决方案: 问题答案: 根据文档: MySQL文档 SELECT语句在FROM子句中不能包含子查询。 解决方法是为每个子查询创建一个视图。 然后从您的视图中访问这些视图

  • 我有一个类Api,它包含一个数据列表:

  • 请您帮助我为SQL创建QueryDSL构造,如下所示,使用JPA查询。我使用的是4.1.3。

  • 问题内容: 我们正在将JPA与hibernate用作提供程序,我们有一个查询,该查询包含一个与FROM子句中的子查询的联接,但是会出现以下错误: org.hibernate.hql.ast.QuerySyntaxException:意外令牌:(在第1行第75列附近[SELECT sd from com.hp.amber.datamodel.entities.analysis.SnapshotDat

  • 我的ParkingLotEntity: 我的Jpa存储库接口 上面的两个方法运行良好,但问题是我还需要从结果集到第二个方法“GetAllParkingLotCurrentlyWorkingInRegionOfRadius”中的位置的任何停车场之间的距离!在SQL Server中,我的定义函数已经计算出了距离。方法2的结果集是成功的,但没有返回距离(这是我的需要),只是一组parkingLotEnt