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

获取记录与它绑定最后一条记录具有特定值

易骁
2023-03-14

其中有2个表:

例如书

id || --
1  || 
2  || 
3  || 

和贷款:

id | booId  | duration
1  | 1      | 4
2  | 1      | 6
3  | 1      | **5 (last one for book1)**
4  | 2      | 2
5  | 2      | 3
6  | 3      | 8
7  | 3      | **(5 not the last one so i don't need book3)**
8  | 3      | 6
9  | 2      |  **5 (last one for book2)**

我需要获得所有的图书id,其中最后的贷款期限等于,所以在本例中它将是:[1,2]

共有1个答案

桓修能
2023-03-14

一种方法使用聚合:

select book_id
from loans l
group by book_id
having max(id) = max(case when duration = 5 then id end);

这将检查给定图书的最后一个id是否与所需持续时间的给定图书的最后一个id匹配。

 类似资料:
  • 问题内容: 我正在使用mysql并遇到一些问题。我想检索插入的最后一行。 <<以下是详细>> 以下是我创建表格的方式。 我在其中插入了四个值,如下所示 当我执行时,我得到如下输出 当我尝试下面的代码时, 我得到如下输出。 但是,当我使用代码时,出现错误 使用时,表中没有任何数据。 链接以播放数据 注意: 这里我使用4只是为了获得所需的输出。稍后我可以从查询中获取 如果我只想查看最后一条记录,请建议

  • 我需要国家列表,其中没有城市或地方,这意味着所有的城市或地方的国家是空的或空的。不要国家,如果国家的一个记录有城市或地方价值。

  • 问题内容: 我正在尝试获取“分组”记录的第一条记录和最后一条记录。 更准确地说,我正在执行这样的查询 但我想获得小组的第一和最后的记录。可以通过执行大量请求来完成,但是我的桌子很大。 是否有使用MySQL的方法(如果可能的话,可以减少处理时间)? 问题答案: 您要使用和: 这避免了昂贵的子查询,并且我发现对于这个特定问题它通常更有效。 请查阅手册中的两个函数以了解它们的参数,或访问本文,其中包含有

  • 问题内容: 这个问题已经在这里有了答案 : 8年前关闭。 可能重复: SQL Server:只有GROUP BY中的最后一个条目 我有一个这样的表: 我使用以下查询: 以上查询的结果: 在结果组上方按名称排列行,但显示每个组的第一行。我想从每个组中选择最后一行(按ID)。 例如: 如何编写以上结果的查询。 谢谢 问题答案: 甚至可能不再需要该组。

  • 我正在尝试对存储在elasticsearch中的记录实现搜索查询。记录结构看起来像这样。 一个框可以包含多个项目。例如,Box3可以有Item1、Item2和Item3。因此,在elasticsearch中,我将有3个不同的文档。同时,同一个框和同一个项目也可以存在,但地址不同。这些文档的transactionID可能相同,也可能不相同。 我的要求是获取最后n个最近的和不同的Transaction

  • 问题内容: 我有一张桌子和and collums。 我想得到每个的总数。我正在尝试以下查询: 我也试过这个查询 但是没有得到实际的结果。我想要以上数据的结果: 问题答案: 您只需要使用而不是即可。因此,请尝试以下查询: 看到这个SQLFiddle 让您使用聚合函数,如,,, ,等而只是删除重复。

  • 问题内容: 我有一个包含ID,WorkerID,IsActive标志(1或0)和LocalTime的表。每次工作人员处于活动状态或不活动状态时,都会使用WorkerID,1或0标志记录以及一个时间(LocalTime)创建一条记录。 我想插入一个新表中:从该表中,对于每个唯一的WorkerID,仅当该记录的IsActive标志为1时,才为该唯一的WorkerID选择具有最新LocalTime的记录

  • 问题内容: 桌子: 查询: 结果: 问题: 如何重写查询,使其返回post_id-> 83而不是post_id-> 81? 他们都有相同的论坛ID和主题ID,但是post_id-> 81的日期早于post_id-> 83。 但是,Group By似乎获得了“第一”记录,而不是“最新”记录。 我尝试将查询更改为 但这同时返回post_id 81和83 问题答案: 如果选择在group子句中未使用且不