Ver Mensaje Individual
  #3 (permalink)  
Antiguo 26/07/2012, 14:02
luciana_uru
 
Fecha de Ingreso: diciembre-2010
Mensajes: 160
Antigüedad: 13 años, 4 meses
Puntos: 1
Respuesta: Varios forearch a una misma consulta

Cita:
Iniciado por leonardo_josue Ver Mensaje
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.
Muchas Gracias! si me sirve. Antes lo habia publicado en PHP, pero me dijieron que mejor lo postee en Mysql . Tu ejemplo me sirvio mucho!!! Muchas Gracias! vere que tal y te cuento.