仅使用sql(MySQL)我想选择父子关系的最后一个子行,其中子行按时间戳排序.
例如,使用表发票和invoice_items,我想分别为每个发票的最新(即:最近时间戳)invoice_items记录.
--------------------------|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 iINNER JOIN ( SELECT invoice_ID,MAX(invoice_item_timestamp) FROM invoice_items GROUP BY invoice_ID) it ON (i.invoice_ID=it.invoice_ID)
总结 以上是内存溢出为你收集整理的如何使用SQL选择父/子关系的最后一个子行全部内容,希望文章能够帮你解决如何使用SQL选择父/子关系的最后一个子行所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)