Consultas MySQL
Hola,
A ver si tú sabes hacer esta consulta de una forma sencilla en MySQL. Quiero averiguar el registro de una tabla que cumpla las siguientes condiciones:
- Que la categoría a la que pertenece sea una concreta, por ejemplo 'Economía'.
- Que dentro de esa categoría, sea el último registro insertado, basándose en la fecha (campo "fechahora_alta")
Y quiero extraer algunos campos del registro resultante, como por ejemplo, el campo "titulo".
He probado con funciones de subtotalización, concretamente con la función MAX(), pero no logro extraer simultáneamente la fecha máxima y el titulo del registro:
SELECT titulo, categoria, MAX(fechahora_alta) AS fhalta FROM recursos WHERE categoria='Economía' GROUP BY categoria;
SELECT r2.id, MAX(recursos.fechahora_alta) AS fhalta FROM recursos, recursos AS r2 WHERE r2.fechahora_alta = fhalta AND categoria='Economía' GROUP BY categoria;
Esta es una tabla recursos de ejemplo con el filtro de categoría ya pasado
+----------------------------------------------------------+-----------+---------------------+
| titulo | categoria | fechahora_alta |
+----------------------------------------------------------+-----------+---------------------+
| Falsas ofertas de empleo tras líneas 906 | Economia | 2001-08-12 13:08:12 |
| Hacienda abre una investigación interna sobre Gescartera | Economía | 2001-08-12 12:35:01 |
+----------------------------------------------------------+-----------+---------------------+
Este es el resultado que me gustaría obtener, pero que no logro. ¿Me das alguna pista?
Gracias
A ver si tú sabes hacer esta consulta de una forma sencilla en MySQL. Quiero averiguar el registro de una tabla que cumpla las siguientes condiciones:
- Que la categoría a la que pertenece sea una concreta, por ejemplo 'Economía'.
- Que dentro de esa categoría, sea el último registro insertado, basándose en la fecha (campo "fechahora_alta")
Y quiero extraer algunos campos del registro resultante, como por ejemplo, el campo "titulo".
He probado con funciones de subtotalización, concretamente con la función MAX(), pero no logro extraer simultáneamente la fecha máxima y el titulo del registro:
SELECT titulo, categoria, MAX(fechahora_alta) AS fhalta FROM recursos WHERE categoria='Economía' GROUP BY categoria;
SELECT r2.id, MAX(recursos.fechahora_alta) AS fhalta FROM recursos, recursos AS r2 WHERE r2.fechahora_alta = fhalta AND categoria='Economía' GROUP BY categoria;
Esta es una tabla recursos de ejemplo con el filtro de categoría ya pasado
+----------------------------------------------------------+-----------+---------------------+
| titulo | categoria | fechahora_alta |
+----------------------------------------------------------+-----------+---------------------+
| Falsas ofertas de empleo tras líneas 906 | Economia | 2001-08-12 13:08:12 |
| Hacienda abre una investigación interna sobre Gescartera | Economía | 2001-08-12 12:35:01 |
+----------------------------------------------------------+-----------+---------------------+
Este es el resultado que me gustaría obtener, pero que no logro. ¿Me das alguna pista?
Gracias
Respuesta de bankhacker
1