Ver Mensaje Individual
  #7 (permalink)  
Antiguo 23/12/2009, 17:55
Avatar de CdG
CdG
 
Fecha de Ingreso: marzo-2008
Mensajes: 114
Antigüedad: 16 años, 11 meses
Puntos: 2
Respuesta: maximos de un SELECT

hola jurena,

Para hacer la consulta quite el ORDER BY:
Código MySQL:
Ver original
  1. SELECT * FROM usuarios_modulos
  2. LEFT JOIN modulos
  3. ON modulos.id = usuarios_modulos.id_modulo
  4. WHERE usuarios_modulos.id_usuario = id
  5. GROUP BY id_modulo HAVING MAX(usuarios_modulos.id)

Como le decía gildus me devuelve el primer grupo de id_modulo y no los últimos.
También probé usuarios_modulos.id > MAX(usuarios_modulos.id).
Buena idea, pero en este caso la consulta viene vacía.

Un poco pensando en lo que me propusognzsoloyo y jurena escribí la consulta así y funciona:

Código MySQL:
Ver original
  1. SELECT * FROM usuarios_modulos
  2. LEFT JOIN modulos
  3. ON modulos.id = usuarios_modulos.id_modulo
  4. WHERE usuarios_modulos.id IN
  5. (SELECT MAX(usuarios_modulos.id) FROM usuarios_modulos WHERE id_usuario = id GROUP BY id_modulo)

Aunque sigo sin entender porque la de gildus no funciona
Leí que en lo posible hay que evitar anidar SELECT. ¿Se podrá optimizar la consulta?

gracias por todo!
__________________
no quiero ser un árbol y caminar
Jacinto Piedra