Ver Mensaje Individual
  #2 (permalink)  
Antiguo 26/07/2012, 13:46
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 4 meses
Puntos: 447
Respuesta: Varios forearch a una misma consulta

Hola luciana_uru:

En primer lugar, no es correcto que pongas código PHP ni de ningún otro lenguaje de programación en este foro. Este es exclusivo de MySQL y por políticas del foro no debemos contestar preguntas de programación. Existen los foros propios del lenguaje que estás utilizando.... te invito a que expongas ahí tu pregunta.

En cuanto a tu pregunta, te dejo un ejemplo que igual y te puede servir... supongamos que tenemos esta tabla;

Código MySQL:
Ver original
  1. mysql> SELECT * FROM tabla;
  2. +------+-------------+---------------------+
  3. | id   | descripcion | fecha               |
  4. +------+-------------+---------------------+
  5. |    1 | uno         | 2012-07-26 11:57:00 |
  6. |    1 | one         | 2012-07-26 09:58:23 |
  7. |    1 | un          | 2012-07-26 10:00:51 |
  8. |    2 | dos         | 2012-07-26 13:10:36 |
  9. |    2 | two         | 2012-07-26 07:30:29 |
  10. |    2 | deux        | 2012-07-26 11:16:47 |
  11. |    3 | tres        | 2012-07-26 08:29:21 |
  12. |    3 | three       | 2012-07-26 09:43:22 |
  13. |    3 | trois       | 2012-07-26 10:20:45 |
  14. +------+-------------+---------------------+
  15. 9 rows in set (0.00 sec)

Observa que hay tres registros por cada id, cada uno con una fecha distinta. Si quisiéramos obtener el último registro para cada id podríamos hacer esto:

Código MySQL:
Ver original
  1. mysql> SELECT id, MAX(fecha) max_fecha
  2.     -> FROM tabla GROUP BY id;
  3. +------+---------------------+
  4. | id   | max_fecha           |
  5. +------+---------------------+
  6. |    1 | 2012-07-26 11:57:00 |
  7. |    2 | 2012-07-26 13:10:36 |
  8. |    3 | 2012-07-26 10:20:45 |
  9. +------+---------------------+
  10. 3 rows in set (0.00 sec)

Sin embargo, esto no nos dice la descripción (o cualquier otro campo adicional que tuviera la tabla). Sin embargo, podrías utilizarla como una subconsulta para filtrar tus datos, más o menos así:

Código MySQL:
Ver original
  1. mysql> SELECT T1.*
  2.     -> FROM tabla T1
  3.     -> INNER JOIN
  4.     -> ( SELECT id, MAX(fecha) max_fecha
  5.     ->   FROM tabla GROUP BY id ) T2
  6.     -> ON T1.id = T2.id AND T1.fecha = T2.max_fecha;
  7. +------+-------------+---------------------+
  8. | id   | descripcion | fecha               |
  9. +------+-------------+---------------------+
  10. |    1 | uno         | 2012-07-26 11:57:00 |
  11. |    2 | dos         | 2012-07-26 13:10:36 |
  12. |    3 | trois       | 2012-07-26 10:20:45 |
  13. +------+-------------+---------------------+
  14. 3 rows in set (0.00 sec)

Dale un vistazo para ver si te sirve, sino como te comenté, te invito a que publiques tu pregunta en el foro de PHP para que los expertos en el tema te ayuden.

saludos
Leo.