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

Eliminar datos duplicados en un select

Estas en el tema de Eliminar datos duplicados en un select en el foro de Mysql en Foros del Web. Saludos. Mi problema es el siguiente. De una tabla obtengo un conjunto de datos mediante un select, pero algunos de estos datos es posible que ...
  #1 (permalink)  
Antiguo 28/11/2013, 12:14
 
Fecha de Ingreso: diciembre-2009
Mensajes: 128
Antigüedad: 14 años, 4 meses
Puntos: 0
Eliminar datos duplicados en un select

Saludos. Mi problema es el siguiente. De una tabla obtengo un conjunto de datos mediante un select, pero algunos de estos datos es posible que esten repetidos y deseo eliminar los duplicados, espero haberme explicado bien, de antemano gracias por su atencion.
  #2 (permalink)  
Antiguo 28/11/2013, 12:35
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, 5 meses
Puntos: 2658
Respuesta: Eliminar datos duplicados en un select

Explicado, si. Pero sin ver una muestra de datos del caso es difícil saber qué "duplicados" pueden ser.

Hago esa aclaración porque desde el punto de vista de Base de Datos, se considera duplicado si y sólo si todos los campos repiten valores entre dos registros dados cualesquiera.
Es decir, si tienes algo como:
Cita:
1, 2, 4, 3, 5, 6, 7, 8, 9, 10,11, 12, 13 , 14
1, 2, 4, 3, 5, 6, 7, 8, 9, 10,11, 12, 13 , 15
Eso no es un duplicado porque al menos una de las columnas tiene valores diferentes.

Entonces, necesitamos ver el caso concreto para poder guiarte en la solución.
__________________
¿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 28/11/2013, 12:46
 
Fecha de Ingreso: diciembre-2009
Mensajes: 128
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Eliminar datos duplicados en un select

ok, en este caso es como el que me indicas. no todos los campos se repiten, para mi caso basta con un campo que se repita para eliminar todo el registro, espero me puedas ayudar, gracias
  #4 (permalink)  
Antiguo 28/11/2013, 12:49
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, 5 meses
Puntos: 2658
Respuesta: Eliminar datos duplicados en un select

Muestranos un ejemplo de los datos que tienes, y la estructura de la tabla (el CREATE TABLE, no una descripción). En el aire no es posible trabajar.
Si no puedes darnos eso, al menos muestranos cómo lo intentarías.
Ten en cuenta que hay muchas formas de hacer lo que quieres, pero en BBDD estamos habituados a trabajar con cosas concretas, no con descripciones.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 28/11/2013, 13:00
 
Fecha de Ingreso: diciembre-2009
Mensajes: 128
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Eliminar datos duplicados en un select

ok, mi tablas es esta
Código MySQL:
Ver original
  1. CREATE TABLE `instrumentos` (
  2.   `id` int(11) NOT NULL auto_increment,
  3.   `num` varchar(3) default NULL,
  4.   `marca` varchar(30) default NULL,
  5.   `modelo` varchar(30) default NULL,
  6.   `serie` varchar(20) default NULL,
  7.   `holograma` varchar(10) default NULL,
  8.     PRIMARY KEY  (`id`)
  9. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

y mi select es algo asi

Código MySQL:
Ver original
  1. SELECT * FROM `instrumentos` where num=100

est me da varios registros donde el campo num es igual a 100 pero en estos datos obtenidos habra algunos donde el campo holograma este repetido, y es entonces donde solo me debo de quedar con un registro de esos, espero haber sido claro, gracias
  #6 (permalink)  
Antiguo 30/11/2013, 04:16
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Eliminar datos duplicados en un select

a ver,
si no pueden repetirse num y holograma y solo te referías a esos dos campos, lo primero, ya que has llegado a esa situación (lo podrías haber controlado antes con un índice único compuesto por los dos campos) es averiguar cuáles son. Tampoco nos dices si te da igual conservar uno u otro de los repetidos, pues eso facilitaría la tarea.
Esto, creo (no lo he probado), te mostrará todos los instrumentos que tengan repetidos num y holograma
Código MySQL:
Ver original
  1. SELECT * FROM instrumentos i INNER JOIN (SELECT num, holograma FROM instrumentos
  2.     GROUP BY num, holograma
  3.            HAVING COUNT(*) > 1)t1 ON i.num=t1.num AND i.holograma = t1.holograma
  4.      ORDER BY i.num, i.holograma

Pero esto es solo para mostrar. Para dejar solo uno tendrás varias opciones que dependerán de los resultados obtenidos.

Etiquetas: duplicados, select, tabla
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 02:21.