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

Extraer emails distintas tablas sin repetir

Estas en el tema de Extraer emails distintas tablas sin repetir en el foro de Mysql en Foros del Web. Buenas Compañeros, estoy un poco enfrascado en el siguiente tema. Quiero poder sacar todos los emails que tengo en mi base de datos y que ...
  #1 (permalink)  
Antiguo 03/07/2012, 08:59
 
Fecha de Ingreso: junio-2008
Mensajes: 165
Antigüedad: 16 años, 5 meses
Puntos: 6
Extraer emails distintas tablas sin repetir

Buenas Compañeros, estoy un poco enfrascado en el siguiente tema. Quiero poder sacar todos los emails que tengo en mi base de datos y que sean unicos (es decir sin repetir). He probado con distinct pero solo afecta a una tabla es decir no puedo hacer
Código SQL:
Ver original
  1. SELECT DISTINCT mail FROM alertas UNION SELECT DISTINCT mail FROM anuna..

Como puedo hacerlo? son unas 5 tablas y en todas el campo mail se llama igual. Espero que podaís ayudarme. Un saludo!!
  #2 (permalink)  
Antiguo 03/07/2012, 10:47
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 10 meses
Puntos: 447
Respuesta: Extraer emails distintas tablas sin repetir

Hola cronosmen:

A qué te refieres con que no puedes hacer un DISTINCT por tabla??? eso es justamente lo que tienes que hacer.

Código MySQL:
Ver original
  1. mysql> SELECT * FROM tablaA;
  2. +--------------------------+
  3. | mail                     |
  4. +--------------------------+
  5. +--------------------------+
  6. 5 rows in set (0.01 sec)
  7.  
  8. mysql> SELECT * FROM tablaB;
  9. +--------------------------+
  10. | mail                     |
  11. +--------------------------+
  12. +--------------------------+
  13. 3 rows in set (0.00 sec)
  14.  
  15. mysql> SELECT * FROM tablaC;
  16. +--------------------------+
  17. | mail                     |
  18. +--------------------------+
  19. +--------------------------+
  20. 4 rows in set (0.00 sec)
  21.  
  22. mysql> SELECT DISTINCT mail FROM tablaA
  23.     -> UNION
  24.     -> SELECT DISTINCT mail FROM tablaB
  25.     -> UNION
  26.     -> SELECT DISTINCT mail FROM tablaC;
  27. +--------------------------+
  28. | mail                     |
  29. +--------------------------+
  30. +--------------------------+
  31. 4 rows in set (0.01 sec)

El DISTINCT elimina los duplicados en cada tabla, el UNION evita que se repitan registros duplicados... ¿No es esto lo que pretendes obtener?

Saludos
Leo.
  #3 (permalink)  
Antiguo 03/07/2012, 11:37
 
Fecha de Ingreso: junio-2008
Mensajes: 165
Antigüedad: 16 años, 5 meses
Puntos: 6
Respuesta: Extraer emails distintas tablas sin repetir

Buenas Leo, mil gracias por contestar.

La verdad me esta tirando este error:

Cita:
Illegal mix of collations for operation 'UNION'
Esta es la consulta que estoy lanzando:

Código SQL:
Ver original
  1. SELECT DISTINCT mail FROM alertas UNION SELECT DISTINCT mail FROM anuna UNION SELECT DISTINCT mail FROM anunc UNION SELECT DISTINCT mail FROM anuni UNION SELECT DISTINCT mail FROM anunp UNION SELECT DISTINCT mail FROM anunv UNION SELECT DISTINCT mail FROM banuna;

Ojala puedas ayudarme y darte las gracias de nuevo por tu tiempo!
  #4 (permalink)  
Antiguo 03/07/2012, 11:55
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Extraer emails distintas tablas sin repetir

Las columnas de las tablas usadas tienen diferente COLLATION.
Tienes que unificar los tipos de collation usados en las tablas.
__________________
¿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 04/07/2012, 04:21
 
Fecha de Ingreso: junio-2008
Mensajes: 165
Antigüedad: 16 años, 5 meses
Puntos: 6
Respuesta: Extraer emails distintas tablas sin repetir

Solucionado, cambie el formato de una de las tablas que era distinto y ahora funciona genial!. Gracias

Etiquetas: distintas, emails, repetir, select, tabla, tablas, campos
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 22:29.