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

[SOLUCIONADO] Como puedo no seleccionar los datos duplicados

Estas en el tema de Como puedo no seleccionar los datos duplicados en el foro de Mysql en Foros del Web. necesito seleccionar los datos que no sean iguales, y ademas que no se seleccionen los datos suplicados pero ambos, osea si esta duplicado no mostrar ...
  #1 (permalink)  
Antiguo 26/02/2014, 10:08
 
Fecha de Ingreso: enero-2014
Mensajes: 111
Antigüedad: 10 años, 3 meses
Puntos: 1
Como puedo no seleccionar los datos duplicados

necesito seleccionar los datos que no sean iguales, y ademas que no se seleccionen los datos suplicados pero ambos, osea si esta duplicado no mostrar ninguno de los dos.
Este es mi codigo para seleccionar los q no sean iguales
Saludos y gracias

Código MySQL:
Ver original
  1. SELECT  `usuarios` ,  `rut` ,  `nombreusuario` ,  `grupo` ,  `id_cargo_funcional`
  2. FROM resultados1
  3. WHERE grupo <> id_cargo_funcional
  4. GROUP BY usuarios
  #2 (permalink)  
Antiguo 26/02/2014, 10:45
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: Como puedo no seleccionar los datos duplicados

¿Es mi impresión, o has estado realmente dandole vueltas al problema de los duplicados desde hace tiempo?

Bueno, en principio la cosa no es muy difícil, aunque sin ver los datos de tus tablas debemos suponer algunas cosas.
Toda la solución se basa en dos premisas:
1) No deben mostrarse aquellos registros donde uno o más campos predeterminados se repitan entre dos o más registros.
2) Deben mostrarse aquellos registros donde los valores entre dos campos predeterminados sean diferentes.

La solución es simplemente resolver aquellas consultas donde SI SE CUMPLAN esas premisas, para usarlo a fin de EXCLUIR los casos donde se cumple.

¿Se entiende?

Suponiendo que los cuatro campos mencionados en el SELECT pueden duplciarse en diferentes registros, para que se muestren esos, debería cumplirse que:

Código MySQL:
Ver original
  1. SELECT  `usuarios`, `rut`, `nombreusuario`,  `grupo`,  `id_cargo_funcional`
  2. FROM resultados1
  3. GROUP BY `usuarios`, `rut`, `nombreusuario`,  `grupo`,  `id_cargo_funcional`
  4. HAVING COUNT(*) > 1

Para que se se cumpla la segunda premisa, ya tienes tu misma la solcucioón:

Código MySQL:
Ver original
  1. SELECT  `usuarios` ,  `rut` ,  `nombreusuario` ,  `grupo` ,  `id_cargo_funcional`
  2. FROM resultados1
  3. WHERE grupo <> id_cargo_funcional

Para integrar eso, sería simplemente:
Código MySQL:
Ver original
  1. SELECT  `usuarios`,  `rut` ,  `nombreusuario`, `grupo` ,  `id_cargo_funcional`
  2. FROM resultados1
  3. WHERE grupo <> id_cargo_funcional
  4.     AND (`usuarios`,  `rut` ,  `nombreusuario`, `grupo` ,  `id_cargo_funcional` )
  5.       NOT IN (SELECT  `usuarios`, `rut`, `nombreusuario`,  `grupo`,  `id_cargo_funcional`
  6.             FROM resultados1
  7.             GROUP BY `usuarios`, `rut`, `nombreusuario`,  `grupo`,  `id_cargo_funcional`
  8.             HAVING COUNT(*) > 1)
Ahora bien, hay al menos una cosa que debe quedar claro: Para lo que es BBDD, existe duplicidad de registros sí y sólo si todos los campos entre dos registros cualesquiera tienen exactamente los mismos valores, en el mismo orden y para los mismos campos.
Cualquier otra cosa no es duplicidad.

Esto lo remarco, porque para BBDD, esto NO es duplicidad:
Cita:
1 2 3 4 5 6 7 8 9
1 2 3 3 5 6 7 8 9
¿Estamos de acuerdo?

Si lo que te planteo no es lo que tu estás buscando necesitaremos que nos postees un caso de ejemplo de a qué "duplicidad" te estás refiriendo, con un caso real de tu base.
__________________
¿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 26/02/2014, 10:55
 
Fecha de Ingreso: enero-2014
Mensajes: 111
Antigüedad: 10 años, 3 meses
Puntos: 1
Respuesta: Como puedo no seleccionar los datos duplicados

el valor del campo usuarios es el campo duplicado en mi caso, donde el rut y nombre son los mismos pero en el caso de los grupos pueden llegar a ser distintos, en ese caso la idea es no mostrar ninguno
  #4 (permalink)  
Antiguo 26/02/2014, 11:01
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: Como puedo no seleccionar los datos duplicados

Perdona, pero no se entiende bien, entonces.
¿Podrías postear un ejemplo de lo que te sale, y qué es lo que debería salir, según tienes en mente?
Postea un caso real, por favor. No ejemplos simulados. Uno REAL.
__________________
¿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 26/02/2014, 12:33
 
Fecha de Ingreso: enero-2014
Mensajes: 111
Antigüedad: 10 años, 3 meses
Puntos: 1
Respuesta: Como puedo no seleccionar los datos duplicados

Código HTML:
Ver original
  1. usuarios    rut nombreusuario   grupo   id_cargo_funcional
  2. H001594 1234  JORGE                 6184    6133
  3. H035977 2244  MIGUEL                   1231 1228
  4. H035363 1234  LUIS                  9999    8100
  5. H035977 2244  MIGUEL                   9999     0
  6. H123455 1111   JUAN                     9999        9999

La idea es que segun las consultas me muestre los datos de
jorge, luis y no los de miguel y juan porque no deberian pasar el filtro, miguel porque es un usuario duplicado pero con distintos grupos y juan no deberia pasar porque tiene grupos iguales
nose si me explico bien Saludos
  #6 (permalink)  
Antiguo 26/02/2014, 12:43
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: Como puedo no seleccionar los datos duplicados

Eso se debería cumplir con:
Código MySQL:
Ver original
  1. SELECT  `usuarios`,  `rut` ,  `nombreusuario`, `grupo` ,  `id_cargo_funcional`
  2. FROM resultados1
  3. WHERE grupo <> id_cargo_funcional
  4.     AND (`usuarios`,  `rut` ,  `nombreusuario` )
  5.       NOT IN (SELECT  `usuarios`, `rut`
  6.             FROM resultados1
  7.             GROUP BY `usuarios`, `rut`
  8.             HAVING COUNT(*) > 1)
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 26/02/2014, 12:54
 
Fecha de Ingreso: enero-2014
Mensajes: 111
Antigüedad: 10 años, 3 meses
Puntos: 1
Respuesta: Como puedo no seleccionar los datos duplicados

Afectivamente ese era el codigo, verifique uno a uno los datos y esos eran los que necesitava. Muchas gracias y saludos. Creo q las dudas sobre los datos duplicados a llegado a su fin Saludos

Etiquetas: duplicados, select, usuarios
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 17:08.