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

如何使用SQL选择父/子关系的最后一个子行

南宫书
2023-03-14
问题内容

仅使用SQL(MySQL),我想选择一个父子关系的最后一个子行,其中子行按时间戳排序。

例如,使用表invoicesinvoice_items,我想分别invoice_items获取每个表的最新记录(即带有最新时间戳的记录)invoice

--------------------------
|Invoices                |
--------------------------
|invoice_id| other fields|
--------------------------
| 1        | ...         |
--------------------------
| 2        | ...         |
--------------------------
| 3        | ...         |
--------------------------

--------------------------------------------
|Invoice_Items                             |
--------------------------------------------
| id | invoice_id | invoice_item_timestamp |
--------------------------------------------
| 1  | 1            | 2009-12-01 10:00:00  |
--------------------------------------------
| 2  | 1            | 2009-12-01 10:01:00  |
--------------------------------------------
| 3  | 1            | 2009-12-01 10:02:00  |
--------------------------------------------
| 4  | 2            | 2009-12-01 9:00:00   |
--------------------------------------------
| 5  | 3            | 2009-12-02 08:30:00  |
--------------------------------------------
| 6  | 3            | 2009-12-03 08:31:00  |
--------------------------------------------

产生类似于下表的结果集的最佳SQL语法是什么?

-----------------------------------------------------
|invoice_id| invoice_item_id |invoice_item_timestamp|
---------------------------------------------------
| 1        | 3               | 2009-12-01 10:02:00  |
| 2        | 4               | 2009-12-01 09:00:00  |
| 3        | 6               | 2009-12-03 08:31:00  |
-----------------------------------------------------

问题答案:
SELECT i.*,it.* 
FROM invoices i
INNER JOIN (
 SELECT invoice_id, MAX(invoice_item_timestamp) 
 FROM invoice_items
 GROUP BY invoice_id
) it ON (i.invoice_id=it.invoice_id)


 类似资料:
  • 实现一对多关系并选择父项和子项我有一个关系,我想进行查询(选择*) 文件夹。JAVA 作者。JAVA 我的请求: 我得到了这样的结果: 我的代码有什么问题?什么是问题,当我执行查询我得到了这个结果...我想得到这个结果

  • 问题内容: hello 我要选择吗? 只要我在commentList中还有另一个作为实际的最后一个孩子,那就行不通。在这种情况下是否可以使用last- child选择器来选择的最后出现? 问题答案: 仅在有问题的元素是容器的最后一个子元素而不是特定类型的元素的最后一个元素时起作用。为此,你想要 根据@BoltClock的注释,这仅检查最后一个元素,而不检查类为的最后一个元素。

  • 问题内容: SQL开发人员,我有一个计划不周的数据库作为任务,以学习有关SQL Server 2012的很多知识。 所以,有表: 更新该行后,我需要检查element的父键,以不允许element自anny之类。 当我删除该行时,我需要删除所有孩子以及孩子的孩子,等等。 问题是: 如何选择DIST的一个元素的所有“父母+祖父母+等等”? 我如何选择DIST元素中的所有“儿子+孙子+等”? 我读过有

  • 我只是试图选择父框,然后根据父框想要孩子,我的目的是创建父(国家)和子(城市)选择框,当有人选择国家时,它应该显示存储在数据库中的那个国家的城市。当用户选择国家时,页面不应该重新加载,但它应该击中数据库并获取该国家的城市,我创建了一个Wordpress页面,并从那里有很长的时间,我只是把我的html的父和子选择框。 HTML页面/Wordpress页面: 插件文件夹是用相同的名称ajax测试创建的

  • 我有一个场景,需要在一种情况下加载所有子值,在另一种情况下加载一些特定的子值。我对这两种情况都使用一个bean,并使用命名查询编写查询。 现在在我的查询2中,我只需要加载字符串A,而不需要加载字符串B和字符串C。我试过使用 但得到以下错误 那么,关于如何继续这方面的任何建议。。

  • 使用JPA(Hibernate)我试图实现以下关系,并想知道其他人是否对最佳方法有任何建议: 基本上是完全不相关的对象,每个对象都有一个公共子对象的集合;在对象模型中实现简单,在数据库中稍微麻烦些! 我确信这一定是常见的事情,但是我很难找到任何示例实现,因为我真的不知道正确的搜索词。 谢谢你的时间!