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

MySQL: Problemas con Select y Max

Estas en el tema de MySQL: Problemas con Select y Max en el foro de Bases de Datos General en Foros del Web. Hola! Os escribo mi primer mensaje porque tengo una dudilla sobre SQL en MySQL.Ahí voy: Tengo una tabla (se llama "jornadas") con 15 campos. De ...
  #1 (permalink)  
Antiguo 11/09/2004, 11:12
 
Fecha de Ingreso: septiembre-2004
Mensajes: 15
Antigüedad: 20 años, 2 meses
Puntos: 0
MySQL: Problemas con Select y Max

Hola!

Os escribo mi primer mensaje porque tengo una dudilla sobre SQL en MySQL.Ahí voy:

Tengo una tabla (se llama "jornadas") con 15 campos. De estos uno es autoincremental (se llama "idjornada") y otro es booleano (tinyint) y se llama ("jugada"). Lo que quiero es buscar todos aquellos registros en los que "jugada" sea "0" (es decir, false) para únicamente quedarme con aquel que tenga el id ("idjornada") más bajo. Obviamente de este registro me gustaría recuperar todos sus campos. He probado con esto pero lógicamente falla:

Código:
SELECT * from 'jornadas' WHERE jugada=0 AND min(idjornada); 
¿Cual es la sintaxis correcta? Espero que me hayais entendido.

Muchas gracias.
  #2 (permalink)  
Antiguo 11/09/2004, 16:25
Avatar de jrp01  
Fecha de Ingreso: mayo-2004
Ubicación: México
Mensajes: 2.702
Antigüedad: 20 años, 6 meses
Puntos: 0
Prueba esto

Select campo1,campo2,etc..,min(idjornada) from jornadas where jugada=0 group by campo1,campo2....(menos el idjornada)

Explicacion realiza un select no con * si no con cada campo que quires y le pones el min, al final pones al group by a todos los campos menos el idjornada
esto debido a que si utilizas min.mx,avg ect. tienes que ponerle alos demas campos en group by.

Espero que te funciones saludos

  #3 (permalink)  
Antiguo 12/09/2004, 01:22
 
Fecha de Ingreso: septiembre-2004
Mensajes: 15
Antigüedad: 20 años, 2 meses
Puntos: 0
Hola!!!

En primer lugar quería darte las gracias por la rapidísima respuesta sin embargo la sentencia no funciona como debería funcionar: efectivamente me devuelve los campos que le he solicitado pero me suelta todos los registros con jugada=0 y no únicamente aquel que tenga jugada=0 y id_jornada el valor mínimo. La sentencia es:


Código:
SELECT jornada, fecha, dinero, jugada,min(id_jornada)
FROM jornadas
WHERE jugada=0 GROUP  BY jornada, fecha, dinero,jugada
Por cierto, uso MySQL 4.0.15

Gracias de nuevo.
  #4 (permalink)  
Antiguo 12/09/2004, 05:22
 
Fecha de Ingreso: septiembre-2004
Mensajes: 15
Antigüedad: 20 años, 2 meses
Puntos: 0
Bueno, pues me respondo a mí mismo. Pensando un poco se me ocurrio esta solución:


Código:
SELECT  * FROM  `jornadas` WHERE jugada=0 ORDER BY id_jornada ASC LIMIT 0,1 
Funciona correctamente (obtiene todos los registros que tienen jugada=false y se queda con el que tiene id_jornada menor) pero no se si es muy ortodoxo. Si alguien puede mejorar la sentencia se lo agradecería mucho.
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 23:07.