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

Problema con DISTINCT()

Estas en el tema de Problema con DISTINCT() en el foro de Mysql en Foros del Web. Hola, miren... tengo la siguiente consulta @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código MySQL: Ver original SELECT DISTINCT ( idDevice ) , date , speed , longitude , latitude ...
  #1 (permalink)  
Antiguo 11/02/2011, 23:34
 
Fecha de Ingreso: septiembre-2006
Mensajes: 127
Antigüedad: 17 años, 7 meses
Puntos: 5
Problema con DISTINCT()

Hola, miren... tengo la siguiente consulta
Código MySQL:
Ver original
  1. SELECT DISTINCT(idDevice), date, speed, longitude, latitude, description
  2. FROM gps_positions
El problema es que muestra todos los resultados aunque "idDevice" sea el mismo...

idDevice date speed longitude latitude description
11286 2011-02-12 20 -73.327672 -25.373975
11286 2011-02-12 20 -73.327672 -34.373975

¿Cual es mi problema? ¿Que escribí mal?
  #2 (permalink)  
Antiguo 12/02/2011, 03:03
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Problema con DISTINCT()

el distinct afecta a toda la cadena tras el select antes del from, y como para el mismo idDevice tienes fechas distintas o longitudes distintas o lo que sea, pues te sale lo que te sale
el group by te ofrece un idDevice solamente, pero te ofrece solamente los datos de DATE, speed,longitude, latitude, description del primer registro almacenado en la tabla de cada idDevice

Código MySQL:
Ver original
  1. SELECT idDevice, DATE, speed, longitude, latitude, description
  2.       FROM gps_positions GROUP BY idDevice

Si no es eso lo que quieres, dinos lo que quieres exactamente, especificando los campos de las tablas y un ejemplo con datos y los que deberías obtener.

Última edición por jurena; 12/02/2011 a las 05:05
  #3 (permalink)  
Antiguo 12/02/2011, 11:39
 
Fecha de Ingreso: septiembre-2006
Mensajes: 127
Antigüedad: 17 años, 7 meses
Puntos: 5
Respuesta: Problema con DISTINCT()

Ah ok, pero no era el GROUP BY lo que busco...
Código MySQL:
Ver original
  1. SELECT gps_devices.*, gps_positions.*
  2. FROM gps_devices
  3. INNER JOIN gps_positions
  4. ON gps_positions.idPosition = (SELECT MAX(idPosition) FROM gps_positions WHERE idDevice = gps_devices.idDevice)
  5. ORDER BY gps_positions.date ASC
En realidad estaba haciendo un DISTINCT en un JOIN, no me resultaba así lo intenté hacer por seperado para probar errores. Finalmente logré hacer lo que quería, con la consulta que muestro anteriormente.

Gracias de todos modos.

Última edición por KekoGrama; 12/02/2011 a las 12:27

Etiquetas: distinct
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 14:13.