Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

consulta usando where MAX(campo)

Estas en el tema de consulta usando where MAX(campo) en el foro de Mysql en Foros del Web. Hola, no puedo hacer una consulta! no me sale! quiero buscar nombres de articulos y ids dependiendo de el valor max de un campo. Tengo ...
  #1 (permalink)  
Antiguo 25/06/2010, 15:05
Usuario no validado
 
Fecha de Ingreso: marzo-2007
Mensajes: 238
Antigüedad: 17 años, 1 mes
Puntos: 5
consulta usando where MAX(campo)

Hola, no puedo hacer una consulta! no me sale!

quiero buscar nombres de articulos y ids dependiendo de el valor max de un campo. Tengo una tabla con varios reigstros de articulo:
id - 1
title - nombre artuculo
relacio -> 155 // aqui es el MAX()

otros arts cambiaria:
id - 33
title - otro nombre
relacion -> 168 ... y asi

Como buscaria:
select it.id, it.title, it.catid as categoria, cat.name, extra_fields_search as bolnum from jos_k2_items as it, jos_k2_categories as cat where it.extra_fields_search = 155 and it.catid = cat.id;

pero que el 155 sea MAX(mi_campo) en este caso MAX(extra_field_search);, me manda error (Invalido uso de funcion group)
  #2 (permalink)  
Antiguo 25/06/2010, 16:19
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: consulta usando where MAX(campo)

Habría que intentar algo así:
Código MySQL:
Ver original
  1.     it.id,
  2.     it.title,
  3.     it.catid categoria,
  4.     cat.name,
  5.     extra_fields_search bolnum
  6. FROM jos_k2_items it INNER JOIN jos_k2_categories cat ON it.catid = cat.id
  7. GROUP BY it.extra_fields_search
  8. HAVING it.extra_fields_search = MAX(it.extra_fields_search);
Y si no:

Código MySQL:
Ver original
  1.     it.id,
  2.     it.title,
  3.     it.catid categoria,
  4.     cat.name,
  5.     extra_fields_search bolnum
  6. FROM jos_k2_items it INNER JOIN jos_k2_categories cat ON it.catid =  cat.id
  7. GROUP BY it.extra_fields_search
  8. HAVING it.extra_fields_search = (SELECT MAX(extra_fields_search) FROM jos_k2_items);
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 25/06/2010, 21:02
Usuario no validado
 
Fecha de Ingreso: marzo-2007
Mensajes: 238
Antigüedad: 17 años, 1 mes
Puntos: 5
Respuesta: consulta usando where MAX(campo)

gracias gnzsoloyo, no me funciona usando GROUP BY, no se por que, mira con lo que me enviaste quedo asi:
Código MySQL:
Ver original
  1.     it.id, it.title, it.catid categoria, cat.name, extra_fields_search bolnum
  2. FROM jos_k2_items it INNER JOIN jos_k2_categories cat ON it.catid =  cat.id
  3. it.extra_fields_search = (SELECT MAX(extra_fields_search) FROM jos_k2_items);
pero agrupar no funciono, espero asi este bien, lo que si me iluminaste mucho fue con esa subconsulta del MAX()

Una pregunta, se vale usar AND ?

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:07.