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

[SOLUCIONADO] sin datos duplicados!!!

Estas en el tema de sin datos duplicados!!! en el foro de Mysql en Foros del Web. Hola chicos que tal como va todo :D tengo una problema y es que necesito hacer una consulta donde me salen datos repetidos solo quiero ...
  #1 (permalink)  
Antiguo 19/02/2014, 22:55
Avatar de sonickseven  
Fecha de Ingreso: diciembre-2012
Ubicación: bogota
Mensajes: 404
Antigüedad: 11 años, 4 meses
Puntos: 2
sin datos duplicados!!!

Hola chicos que tal como va todo :D tengo una problema y es que necesito hacer una consulta donde me salen datos repetidos solo quiero un pequeño ejemplo con esto por decir:
Código MySQL:
Ver original
  1. table usuario
  2. cod-nombre------apellido----telefono
  3. 1---carlos------cardenas----12587
  4. 2---Umberto ----Contreras---125488
  5. 3---carlos------Torres------44587
  6. 4---Victor------Sambrano----69754
  7. 5---Carlos------Barragan----3698741
  8. 6---Jorge-------Cantor     
  9. 7---Umberto-----Zanetty-----578825
  10. 6---Miguel------Cantor------5488787

y la consulta seria

Código MySQL:
Ver original
  1. SELECT * FROM usuario where telefono<>'' order by cod
Y que yo dijera que no hubieran datos repetidos en nombre por ejemplo hay tres Carlos y dos Umberto osea que la consulta tendria 7 resultados pero si se logra hacer lo de que no se repitan nombres quedarian solamente 4 resultados

si alguna parte de esto que he escrito no lo han entendido tranquilos pregunten puntualmente que les aclarare

Última edición por sonickseven; 19/02/2014 a las 23:01
  #2 (permalink)  
Antiguo 20/02/2014, 04:56
 
Fecha de Ingreso: diciembre-2005
Mensajes: 65
Antigüedad: 18 años, 4 meses
Puntos: 4
Respuesta: sin datos duplicados!!!

Código MySQL:
Ver original
  1. select distinct(nombre), apellido, telefono
  2. FROM usuario
  3. where telefono<>''

Última edición por piwy; 20/02/2014 a las 07:05
  #3 (permalink)  
Antiguo 20/02/2014, 14:55
Avatar de sonickseven  
Fecha de Ingreso: diciembre-2012
Ubicación: bogota
Mensajes: 404
Antigüedad: 11 años, 4 meses
Puntos: 2
Respuesta: sin datos duplicados!!!

ammmm perdon esta bn tu solucion pero ya he visto que mi problema es bastante más complejo :(

La cosa es asi:

Es que necesito saber a que personas no sigo por, pense que haciendo el diferencial DISTINC esta ok pero no sigue el mismo problema :( y es que ya analize bn el problema y es lo siguiente:

hay 120 usuarios pero en las consultas de quienes se siguen hay como 300 registro!!! una suposicion :D entonces digamos que yo sigo a 40 entonces sobrarian 80 usuarios hasta estamos bn pues bueno puse en distinc y como ya sabran me salen 260 respuestas :OO me preguntaba hasta que si es obvio son 260 pero de los 300 registros que hay en una tabla que se llama follow_follower... Entonces como seria la solucion pues tengo una pero creanme que seria el ultimo recurso :( asi que habra alguna forma de digamos:

primero consultar primero a quienes yo sigo y despues de eso si hacer una consulta donde no me salgan los datos de esas persona que sigo (la consulta anterior)??

Código MySQL:
Ver original
  1.  
  2. cod nombre      apellido    telefono
  3. 1   carlos      cardenas    12587
  4. 2   Umberto     Contreras   125488
  5. 3   carlos      Torres      44587
  6. 4   Victor      Sambrano    69754
  7. 5   Carlos      Barragan    3698741
  8. 6   Jorge       Cantor     
  9. 7   Umberto     Zanetty     578825
  10. 8   Miguel      Cantor      5488787
  11.  
  12. table follow_follower
  13. cod seguidor    seguido
  14. 1   1           2
  15. 2   1           3
  16. 3   1           8
  17. 4   1           6
  18. 5   8           2
  19. 6   2           8
  20. 7   2           4
  21. 8   3           2
  22. 9   5           1
si nos damos de cuenta como yo intente hacer antes pues no saldrian todas los registro donde seguidor fuera 1 pero si: 1 sigue a 2 etonces dos no debe de aparecer pero en el registro 6,7 el seguidor dos sale claro en la consulta :D

espero hayan entendido mejor el probelam :)
  #4 (permalink)  
Antiguo 20/02/2014, 15:19
Avatar de sonickseven  
Fecha de Ingreso: diciembre-2012
Ubicación: bogota
Mensajes: 404
Antigüedad: 11 años, 4 meses
Puntos: 2
Respuesta: sin datos duplicados!!!

hize algo pero no me funciono por que escoje solo uno de los tantos resultados:
Código MySQL:
Ver original
  1. select distinct(nombre), apellido, telefono
  2.     FROM usuario
  3.     where cod<> ANY(select seguido from follow_follower where seguidor=1)
  4.     order by cod

pero me gustaria no se algo asi como un while :/
  #5 (permalink)  
Antiguo 24/02/2014, 10:21
Avatar de sonickseven  
Fecha de Ingreso: diciembre-2012
Ubicación: bogota
Mensajes: 404
Antigüedad: 11 años, 4 meses
Puntos: 2
Respuesta: sin datos duplicados!!!

please chicos ayuden que vean que yo colaboro en lode programación que es lo mio pero MySql no es mi fuerte. :(
  #6 (permalink)  
Antiguo 24/02/2014, 11:36
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: sin datos duplicados!!!

sonickseven,
a ver si he entendido lo que quieres. Dices que quieres saber las personas a quienes no sigues tú (cod =1), sean o no seguidos por otro, es decir, quieres todos los que no sigues de la lista de User, excluido tú mismo que no puedes seguirte a ti mismo?
No lo he probado, pero intenta esto a ver qué ocurre.
Código MySQL:
Ver original
  1. SELECT U.cod, U.nombre, U.apellido, U.telefono
  2.  (SELECT f.seguido
  3.   FROM follow_follower f
  4.      WHERE f.seguidor = 1)t1
  5. ON  t1.seguido IS NULL AND t1.seguido != 1
  6. GROUP BY U.cod
  #7 (permalink)  
Antiguo 25/02/2014, 10:34
Avatar de sonickseven  
Fecha de Ingreso: diciembre-2012
Ubicación: bogota
Mensajes: 404
Antigüedad: 11 años, 4 meses
Puntos: 2
Respuesta: sin datos duplicados!!!

haber te explico Jurena (tu que siempre me salvas de consultas dificiles :D ). Uno puede hacer una consulta donde uno sabe a quien esta siguiendo cierto

Código MySQL:
Ver original
  1. select us.nombre, us.apellido
  2. from usuario as us, follow_follower as fo
  3. where fo.seguido=us.cod and fo.seguidor=1;

esta seria la consulta donde me mostraria los usuario que yo sigo cierto.

Pues me gustaria hacer una consulta que haga lo contrario. Que me muestre a los usuarios que yo no sigo. solo eso.

Con tu consulta logro casi lo mismo que con una que me dieron en otro sitio.
Código MySQL:
Ver original
  1. SELECT DISTINCT    usuario_seguidor.nombre,    usuario_seguidor.applido,     usuario_seguidor.telephono
  2.   FROM follow_follower
  3.   JOIN usuario AS usuario_seguidor
  4.     ON usuario_seguidor.cod = follow_follower.seguidor
  5.  WHERE follow_follower.seguido <> 1

y me salen en todas las consultas usuarios que yo sigo!!
  #8 (permalink)  
Antiguo 25/02/2014, 14:40
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: sin datos duplicados!!!

dinos en qué fallan ambas consultas, la que te propuse y esa otra. Qué dato te saca que no tenía que sacarte o qué no saca y debía hacerlo. Ponlo con datos si te es posible.
  #9 (permalink)  
Antiguo 26/02/2014, 12:18
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: sin datos duplicados!!!

Prueba esta. La he probado y debería parecerse a lo que quieres:
Código MySQL:
Ver original
  1. SELECT U.cod FROM User U LEFT JOIN (SELECT f.seguido
  2.   FROM follow_follower f
  3.      WHERE f.seguidor = 1)t1 ON u.cod = t1.seguido
  4.         WHERE t1.seguido IS NULL AND U.cod <> 1 GROUP BY U.cod

Última edición por jurena; 27/02/2014 a las 12:16
  #10 (permalink)  
Antiguo 27/02/2014, 11:50
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: sin datos duplicados!!!

Y así si quieres los datos concretos.
Código MySQL:
Ver original
  1. SELECT U.cod, U.nombre, U.apellido, U.telefono FROM User U LEFT JOIN (SELECT f.seguido
  2.   FROM follow_follower f
  3.      WHERE f.seguidor = 1)t1 ON u.cod = t1.seguido
  4.         WHERE t1.seguido IS NULL AND U.cod <> 1 GROUP BY U.cod

Última edición por jurena; 27/02/2014 a las 12:16
  #11 (permalink)  
Antiguo 01/03/2014, 18:45
Avatar de sonickseven  
Fecha de Ingreso: diciembre-2012
Ubicación: bogota
Mensajes: 404
Antigüedad: 11 años, 4 meses
Puntos: 2
Respuesta: sin datos duplicados!!!

Ohhhh si Jurena eres la campeona imbencible me sorprendes :D creeme lo que em has dado es correcto. Aunque te digo que yo ya lo habia solucionado pero usando programacion no SQL osea con javascript que es algo no tan recoemndado.

Etiquetas: select
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 03:06.