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

[SOLUCIONADO] consulta evitando registros repetidos

Estas en el tema de consulta evitando registros repetidos en el foro de Mysql en Foros del Web. Hola amig@s Tengo una consulta que me funciona bien: SELECT vtp_newser.buserid, vtp_members.* FROM vtp_newser, vtp_members WHERE vtp_newser.buserid=vtp_members.id Cuando sale el resultado me aparecen registros repetidos ...
  #1 (permalink)  
Antiguo 07/03/2013, 12:31
Avatar de pmike  
Fecha de Ingreso: marzo-2004
Ubicación: Barcelona
Mensajes: 313
Antigüedad: 20 años
Puntos: 7
consulta evitando registros repetidos

Hola amig@s

Tengo una consulta que me funciona bien:

SELECT vtp_newser.buserid, vtp_members.* FROM vtp_newser, vtp_members WHERE vtp_newser.buserid=vtp_members.id

Cuando sale el resultado me aparecen registros repetidos, porque el campo 'vtp_newser.buserid' es un identificador que en la tabla me aparecen varios.

Cómo es para que aparecieran sólo los registros SIN DUPLICADOS ??

Nota --> He probado con 'DISTINCT' pero no funciona.

Gracias
Un saludo
__________________
www.visitaspirata.com
  #2 (permalink)  
Antiguo 07/03/2013, 14:30
 
Fecha de Ingreso: octubre-2008
Mensajes: 127
Antigüedad: 15 años, 6 meses
Puntos: 5
Respuesta: consulta evitando registros repetidos

Hola,

como indicas, la consulta funciona bien y te retorna todas las relaciones 1:n que tienes entre esas tablas. Pero cuando dices que te aparezca sin duplicados, ¿qué es lo que estás intentado obtener?

Saludos.
  #3 (permalink)  
Antiguo 07/03/2013, 14:38
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: consulta evitando registros repetidos

Hola pmike:

Tal como nos dice ComprasDesdeCasa, creo que nos tienes qué aclarar es ¿qué es lo que entiendes tú como un registro DUPLICADO?

Cita:
Nota --> He probado con 'DISTINCT' pero no funciona.
La cláusula DISTINCT funciona, pero creo que sabes del todo para qué sirve, ojo con eso. Para el motor de BD un registro está duplicado, si y solo sí TODOS SUS CAMPOS SON EXACTAMENTE IGUALES. Observa este ejemplo:

Código MySQL:
Ver original
  1. mysql> SELECT id, descripcion FROM tabla1;
  2. +------+-------------+
  3. | id   | descripcion |
  4. +------+-------------+
  5. |    1 | uno         |
  6. |    2 | dos         |
  7. |    3 | tres        |
  8. |    1 | uno         |
  9. |    2 | otro dos    |
  10. |   33 | tres        |
  11. +------+-------------+
  12. 6 rows in set (0.03 sec)
  13.  
  14. mysql> SELECT distinct id, descripcion FROM tabla1;
  15. +------+-------------+
  16. | id   | descripcion |
  17. +------+-------------+
  18. |    1 | uno         |
  19. |    2 | dos         |
  20. |    3 | tres        |
  21. |    2 | otro dos    |
  22. |   33 | tres        |
  23. +------+-------------+
  24. 5 rows in set (0.04 sec)

El único registro que está duplicado es el (id=1, descripcion = 'uno') todos los demás son UNICOS. Aunque existen dos registros con
id = 2, tienen distinta descripción, y aunque existen dos registros con descripcion = 'tres', estos tienen distinto ID.

Postea los datos de cada una de tus tablas y qué es lo que esperas obtener como salida.

Y una recomendación que hemos hecho mucho en el foro: evita hacer las uniones de tus tablas en el FROM-WHERE, utiliza siempre JOIN:

Código:
En lugar de hacer esto

FROM tabla1, tabla2 WHERE tabla1.campo = tabla2.campo

Haz esto

FROM tabla1 INNER JOIN tabla2 ON tabla1.campo = tabla2.campo
Saludos
Leo.
  #4 (permalink)  
Antiguo 07/03/2013, 15:03
Avatar de pmike  
Fecha de Ingreso: marzo-2004
Ubicación: Barcelona
Mensajes: 313
Antigüedad: 20 años
Puntos: 7
Respuesta: consulta evitando registros repetidos

Es muy facil de entender, quiero consultar los registros pero de ID unicos.

por ejemplo en la consulta me aparece:
Cita:
blogid main univer idblog editor buserid buser

20 3 2013115237 1 2 57000 user_1
30 4 2013115645 2 1 57000 user_1
40 2 2014565645 3 1 57343 user_3
y como veis el campo 'buserid' es el mismo usuario (ID=5700, nombre=user_1) en el primer y segundo registro .

Por eso quiero que me aparezca en este caso solo dos registros (ya que uno es repetido del mismo usuario.

Por lo tanto quiero que la consulta tenga este resultado:

30 4 2013115645 2 1 57000 user_1
40 2 2014565645 3 1 57343 user_3

Un saludo
__________________
www.visitaspirata.com
  #5 (permalink)  
Antiguo 07/03/2013, 15:14
Avatar de pmike  
Fecha de Ingreso: marzo-2004
Ubicación: Barcelona
Mensajes: 313
Antigüedad: 20 años
Puntos: 7
Respuesta: consulta evitando registros repetidos

solucionado al cambiar las clausulas WHERE por INNER JOIN.

Gracias Leo
__________________
www.visitaspirata.com

Etiquetas: campo, evitando, registros, repetidos, 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 20:00.