Ver Mensaje Individual
  #2 (permalink)  
Antiguo 12/01/2012, 11:09
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: Optimizar consulta

Hola turfeano:

Creo que estás complicando demasiado la consulta, checa este script creo que obtienes el mismo resultado con una consulta más sencilla:

Código MySQL:
Ver original
  1. mysql> select * from documento;
  2. +------+--------+
  3. | id   | nombre |
  4. +------+--------+
  5. |    1 | doc1   |
  6. |    2 | docu2  |
  7. +------+--------+
  8. 2 rows in set (0.01 sec)
  9.  
  10. mysql> select * from versiones;
  11. +------+-------+---------+
  12. | id   | docid | version |
  13. +------+-------+---------+
  14. |    1 |     1 |       1 |
  15. |    2 |     1 |       2 |
  16. |    3 |     2 |       1 |
  17. |    4 |     2 |       2 |
  18. |    5 |     2 |       3 |
  19. +------+-------+---------+
  20. 5 rows in set (0.00 sec)
  21.  
  22. mysql> SELECT D.*, V.max_version FROM Documento D INNER JOIN
  23.     -> (SELECT MAX(`version`) max_version, docid FROM versiones GROUP BY docid)
  24. V ON D.id = V.docid;
  25. +------+--------+-------------+
  26. | id   | nombre | max_version |
  27. +------+--------+-------------+
  28. |    1 | doc1   |           2 |
  29. |    2 | docu2  |           3 |
  30. +------+--------+-------------+
  31. 2 rows in set (0.01 sec)

Recuerda también generar los índices respectivos para que las consultas sean más rápidas.

Saludos
Leo.