当前位置: 首页 > 面试题库 >

通过一对多关系表仅选择具有最大字段的一行

柳钟展
2023-03-14
问题内容

我有2个表格,Chapter表格中有很多行,其中manga_id是Manga表格的ID

漫画桌

ID | NAME      | SLUG 
1    One Piece   one-piece
2    Naruto      naruto
3    Gintama     gintama

章表

MANGA_ID | NAME    | SLUG             | CREATED_AT
1          Chap 1    One-Piece-Chap-1   2016/01/01
1          Chap 2    One-Piece-Chap-2   2016/01/02
1          Chap 3    One-Piece-Chap-3   2016/01/03
2          Chap 1    Naruto-Chap-1      2016/01/02
2          Chap 2    Naruto-Chap-2      2016/01/03
2          Chap 3    Naruto-Chap-3      2016/01/04
3          Chap 1    Gintama-Chap-1     2016/01/07
3          Chap 4    Gintama-Chap-4     2016/01/09

我只选择1个漫画,按created_atDESC的顺序排列1章

我要查找的示例表:

Manga_ID | Manga_NAME | NAME    | SLUG             | CREATED_AT
3          Gintama      Chap 4    Gintama-Chap-4     2016/01/09
2          Naruto       Chap 3    Naruto-Chap-3      2016/01/04
1          One Piece    Chap 3    One-Piece-Chap-3   2016/01/03

我真的很感谢任何对此主题的回答,并节省我的时间


问题答案:

SELECT mt.id as MANGA_ID, mt.NAME as MANGA_NAME, ct.NAME, ct.SLUG, MAX(ct.CREATED_AT) as CREATED_AT FROM Chapter ct LEFT JOIN Manga mt ON (mt.id = ct.MANGA_ID) GROUP BY ct.MANGA_ID

这应该可以解决问题。



 类似资料:
  • 问题内容: 假设我有一个客户表和一个采购表。每次购买都属于一个客户。我想在一份SELECT声明中列出所有客户以及他们最近一次购买的清单。最佳做法是什么?关于建立索引有什么建议吗? 请在您的答案中使用这些表/列的名称: customer: purchase: 并且在更复杂的情况下,通过将最后一次购买放入客户表中来对数据库进行非规范化(在性能方面)是否有益? 如果id保证按日期将(购买)排序,可以使用

  • 我正在努力理解如何处理与JOOQ的一对多和多对多关系的Pojo。 我存储玩家创建的位置(一对多关系)。一个位置可以容纳多个可能访问它的其他玩家(多对多)。数据库布局可归结为以下内容: 在我的java应用程序中,所有这些信息都存储在一个pojo中。请注意,玩家和受邀玩家列表可以从应用程序中更新,也需要在数据库中更新: 我可以使用JOOQ的pojo映射将这三个记录映射到单个pojo吗?我可以使用这个p

  • 问题内容: 假设我们在Django中有一个定义如下的模型: 名称字段不是唯一的,因此可以具有重复的值。我需要完成以下任务:从模型中选择具有至少一个name字段重复值的所有行。 我知道如何使用普通的SQL来做到这一点(可能不是最好的解决方案): 因此,可以使用django ORM选择它吗?还是更好的SQL解决方案? 问题答案: 尝试: 这与使用Django所获得的效果非常接近。问题在于这将返回一个w

  • 我正在使用Play Framework 2.1.0和Ebean,在查询下列场景时遇到问题: 我有3类表示数据库中的表。 使用Ebean,如何 > 是否检索项目列表中的所有子项目? 是否检索项目的所有小型项目? 给定子项目列表,如何检索所有小项目?

  • 问题内容: 我将Ebean与Play 2 Framework结合使用,并得到了两种模型:用户模型和书本模型。用户模型与书籍模型以一对多关系连接。因此,每个用户可以拥有很多书,甚至根本没有书。书籍模型本身也具有属性。现在,我想在用户模型中创建一个查询,该查询仅返回具有某些属性书的用户。例如:一个属性可能是条件,例如new或used。现在,给我所有拥有新状态书籍的用户。是否可以使用Ebean方法创建这

  • 问题内容: 如何在mysql中选择仅包含大写字符的字段或不包含任何小写字符的字段? 问题答案: 您可能需要使用区分大小写的排序规则。我相信默认值不区分大小写。例: 然后: 如果您不想在整个表中使用区分大小写的排序规则,则也可以使用其他答案中建议的@kchau子句。 让我们尝试使用不区分大小写的排序规则的表: 这不能很好地工作: 但是我们可以使用子句将名称字段整理为区分大小写的整理: