Usando SQL (MySQL) solamente Quisiera seleccionar cada una de las últimas filas secundarias de una relación secundaria principal donde las filas secundarias están ordenadas por una marca de tiempo .¿Cómo selecciono la última fila secundaria de una relación padre/hijo usando SQL
Por ejemplo, usando las tablas de invoices
y invoice_items
, quiero que los más nuevos (es decir: más recientemente con sellos de tiempo) invoice_items
registros para cada invoice
respectivamente.
--------------------------
|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 |
--------------------------------------------
¿Cuál es la mejor sintaxis de SQL para producir un conjunto de resultados que se parecería a la tabla siguiente?
-----------------------------------------------------
|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 |
-----------------------------------------------------
Qué servidor está usando? – Seth
Estoy usando MYSQL. – rswolff