【问题标题】:Execute MySQL LIMIT in a JPQL sub query在 JPQL 子查询中执行 MySQL LIMIT
【发布时间】:2019-11-04 08:03:57
【问题描述】:

我有以下三个表需要左连接才能检索详细信息。

表 A

消息 ID |发件人姓名

表 B

消息 ID |内容

表 C

消息 ID |事件时间 |状态

表A和表B是一对一的关系,表A和表C是一对多的关系。 我需要在所有 3 个表上创建一个左连接,以从表 C 中检索所有具有最新状态的表上的值

消息ID将在下表中

我创建了以下 JPQL 查询,可用于检索所有三个实体。

select d, e, s from TableA a
left join TableB b on a.messageId = b.messageId
left join TableC c on a.messageId = c.messageId
and c.status = (select st.status from TableC st where st.messageId = a.messageId order by st.eventTime DESC limit 1)

但由于我在查询中使用的限制,我无法作为 JPQL 查询运行。 有什么方法可以格式化此查询以作为 JPQL 查询运行? (JPA 中的原生查询除外)

【问题讨论】:

    标签: mysql jpa


    【解决方案1】:

    据我所知,您实际上无法限制 JPQL 中子查询的结果。最好的办法可能是创建一个视图来执行您的子查询,或者在您的情况下甚至是整个查询,然后从视图中进行选择。

    【讨论】:

      猜你喜欢
      • 2015-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多