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

Mostrar registros UNICOS en MySQL

Estas en el tema de Mostrar registros UNICOS en MySQL en el foro de Bases de Datos General en Foros del Web. Hola amigos, tengo una consulta, en este caso estoy haciendo un SELECT en 5 tablas, eso lo hice bien pero me encontre un problema y ...
  #1 (permalink)  
Antiguo 18/04/2005, 11:11
T4X
 
Fecha de Ingreso: enero-2004
Ubicación: myT-Base
Mensajes: 254
Antigüedad: 20 años, 10 meses
Puntos: 2
Exclamación Mostrar registros UNICOS en MySQL

Hola amigos, tengo una consulta, en este caso estoy haciendo un SELECT en 5 tablas, eso lo hice bien pero me encontre un problema y es por qué muestra registros duplicados????



En cada tabla sólo hay 2 registros.......

Bueno, en la siguiente imagen está el ejemplo, como evito eso???



La imagen está ubicada en www.alturaweb.com/images/mysql/double_records.jpg
por si no la ven.....

Gracias por las respuestas
__________________
Ahora T4X es
WinGFX!!!!!

Última edición por T4X; 18/04/2005 a las 13:33
  #2 (permalink)  
Antiguo 18/04/2005, 11:30
T4X
 
Fecha de Ingreso: enero-2004
Ubicación: myT-Base
Mensajes: 254
Antigüedad: 20 años, 10 meses
Puntos: 2
Ah, por la condicion del DISTINCT era sólo de prueba pero no lo uso para intentar hacer la consulta solicitada...
__________________
Ahora T4X es
WinGFX!!!!!
  #3 (permalink)  
Antiguo 18/04/2005, 11:33
 
Fecha de Ingreso: julio-2003
Ubicación: Colombia
Mensajes: 591
Antigüedad: 21 años, 4 meses
Puntos: 7
select distinct campo_que_quieres_que_sea_"unico" from tabla

Chaop!
  #4 (permalink)  
Antiguo 18/04/2005, 11:36
T4X
 
Fecha de Ingreso: enero-2004
Ubicación: myT-Base
Mensajes: 254
Antigüedad: 20 años, 10 meses
Puntos: 2
:S

Bueno, casi pero no, en realidad necesito mostrar TODOS los campos, y por cierto el distinct es como para que?????
__________________
Ahora T4X es
WinGFX!!!!!
  #5 (permalink)  
Antiguo 18/04/2005, 11:46
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años, 7 meses
Puntos: 47
El distinct es para que el select no traiga rows repetidas... por ejemplo:

SELECT nombre, edad from tabla

si en esa tabla hay 10 rows en el que tiene en el campo nombre "Jorge" y en edad "20" por decir algo ejecutando ese select te devuelve 10 rows exactamente iguales, es decir en la primera posicion "Jorge" y en la segunda posicion "20". Pero si pones distinct elimina las rows repetidas y solo te deja una, es decir que verifica que las rows iguales no se repitan
  #6 (permalink)  
Antiguo 18/04/2005, 13:22
T4X
 
Fecha de Ingreso: enero-2004
Ubicación: myT-Base
Mensajes: 254
Antigüedad: 20 años, 10 meses
Puntos: 2
Aún sigo con la duda, no por el DISTINCT sino porque no funciona...
Incluso en la consulta anterior.....

Qué podrá ser??????????
__________________
Ahora T4X es
WinGFX!!!!!
  #7 (permalink)  
Antiguo 18/04/2005, 14:14
 
Fecha de Ingreso: julio-2003
Ubicación: Colombia
Mensajes: 591
Antigüedad: 21 años, 4 meses
Puntos: 7
aca tienes un ejemplo bastante ilustrativo...


http://dev.mysql.com/doc/mysql/en/se...g-columns.html

Chaop!
  #8 (permalink)  
Antiguo 18/04/2005, 14:18
T4X
 
Fecha de Ingreso: enero-2004
Ubicación: myT-Base
Mensajes: 254
Antigüedad: 20 años, 10 meses
Puntos: 2
No funcionó eso pero, seguiré buscando.....

Gracias luchope!!!!
__________________
Ahora T4X es
WinGFX!!!!!
  #9 (permalink)  
Antiguo 18/04/2005, 14:46
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años, 7 meses
Puntos: 47
Otro problema de registros repetidos normalmente son los joins... dijiste que estabas utiilzando 5 tablas, por alli talvez alguna condicion se te este escapando y hace que se te repitan los registros
  #10 (permalink)  
Antiguo 18/04/2005, 14:48
T4X
 
Fecha de Ingreso: enero-2004
Ubicación: myT-Base
Mensajes: 254
Antigüedad: 20 años, 10 meses
Puntos: 2
mMmmmmMMMmmmm
__________________
Ahora T4X es
WinGFX!!!!!
  #11 (permalink)  
Antiguo 18/04/2005, 14:50
T4X
 
Fecha de Ingreso: enero-2004
Ubicación: myT-Base
Mensajes: 254
Antigüedad: 20 años, 10 meses
Puntos: 2
Bueno, revisaré en la página de MySQL, espero usar bien esta función....

Y sí, son 5 tablas en las cuales 2 campos son iguales en cada uno...
__________________
Ahora T4X es
WinGFX!!!!!
  #12 (permalink)  
Antiguo 18/04/2005, 15:03
T4X
 
Fecha de Ingreso: enero-2004
Ubicación: myT-Base
Mensajes: 254
Antigüedad: 20 años, 10 meses
Puntos: 2
Quedé como un huevo....................................... frito!!!!

Algun ejemplo de como usar JOIN :$?????
__________________
Ahora T4X es
WinGFX!!!!!
  #13 (permalink)  
Antiguo 18/04/2005, 15:06
T4X
 
Fecha de Ingreso: enero-2004
Ubicación: myT-Base
Mensajes: 254
Antigüedad: 20 años, 10 meses
Puntos: 2
Ah, por cierto esto funciona si la tabla sea MYISAM ó INNODB????
__________________
Ahora T4X es
WinGFX!!!!!
  #14 (permalink)  
Antiguo 18/04/2005, 15:08
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años, 7 meses
Puntos: 47
Hable serio hermano. Haber, primero escribeme la sentencia sql completa que estas usando
  #15 (permalink)  
Antiguo 18/04/2005, 15:15
T4X
 
Fecha de Ingreso: enero-2004
Ubicación: myT-Base
Mensajes: 254
Antigüedad: 20 años, 10 meses
Puntos: 2
SELECT DISTINCT * FROM `tabla1`,`tabla3`,`tabla5` WHERE country='CO' AND `tabla1`.`sectionDir`='1' AND `tabla3`.`sectionDir`='1' AND `tabla5`.`sectionDir`='1'



Así es que la tengo...
__________________
Ahora T4X es
WinGFX!!!!!
  #16 (permalink)  
Antiguo 18/04/2005, 15:21
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años, 7 meses
Puntos: 47
perfecto compañero... ya se porque se te repiten los campos, porque no estas relacionando las tablas... primero dime cuales son los campos comunes entre las tablas
  #17 (permalink)  
Antiguo 18/04/2005, 15:24
T4X
 
Fecha de Ingreso: enero-2004
Ubicación: myT-Base
Mensajes: 254
Antigüedad: 20 años, 10 meses
Puntos: 2
los campos comunes son id y sectionDir
__________________
Ahora T4X es
WinGFX!!!!!
  #18 (permalink)  
Antiguo 18/04/2005, 15:30
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años, 7 meses
Puntos: 47
Chuzo esto esta medio dificil de explicar... me imagino que los campos id y sectionDir estan en las 3 tablas... sino es asi hazmelo saber... despues de todo el select que me enviaste tienes que agregar:

and tabla1.id=tabla2.id and tabla1.sectionDir=tabla2.sectionDir and tabla2.id=tabla3.id and tabla2.sectionDir=tabla3.sectionDir

bueno tambien tienes que decirme si los dos campos mencionados son clave primaria, o si en alguna de las tablas tienes alguna otra clave primaria mas
  #19 (permalink)  
Antiguo 18/04/2005, 15:34
T4X
 
Fecha de Ingreso: enero-2004
Ubicación: myT-Base
Mensajes: 254
Antigüedad: 20 años, 10 meses
Puntos: 2
Los campos id y sectionDir estan en todas las tablas y el campo id es llave primaria en todas.....

Ok, intentare hacer como lo especificas....
__________________
Ahora T4X es
WinGFX!!!!!
  #20 (permalink)  
Antiguo 18/04/2005, 15:37
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años, 7 meses
Puntos: 47
si no te sale solo pon:

and tabla1.id=tabla2.id and tabla2.id=tabla3.id
  #21 (permalink)  
Antiguo 18/04/2005, 15:37
T4X
 
Fecha de Ingreso: enero-2004
Ubicación: myT-Base
Mensajes: 254
Antigüedad: 20 años, 10 meses
Puntos: 2
Listo, lo logreeee, graciaaaaas, era así Developer9...
Claro que debo especificar el campo sectionDir debe ser como sectionDir='1'

Se está mostrando en todas las secciones!
__________________
Ahora T4X es
WinGFX!!!!!
  #22 (permalink)  
Antiguo 18/04/2005, 15:43
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años, 7 meses
Puntos: 47
entonces ni siquiera tienes que poner el distinct... De nada compañero de la programacion. Lo que hiciste se llaman joins
  #23 (permalink)  
Antiguo 18/04/2005, 17:32
T4X
 
Fecha de Ingreso: enero-2004
Ubicación: myT-Base
Mensajes: 254
Antigüedad: 20 años, 10 meses
Puntos: 2
Oye pero sucedio algo, los datos me los está mostrando en una sección que no corresponde, algo pasó ahí, inclusive ya especifique en que seccion debe ir, o sea, con la clausula AND sectionDir='1'....

Que ocurrio ahi? Dañe el join?
__________________
Ahora T4X es
WinGFX!!!!!
  #24 (permalink)  
Antiguo 19/04/2005, 17:14
T4X
 
Fecha de Ingreso: enero-2004
Ubicación: myT-Base
Mensajes: 254
Antigüedad: 20 años, 10 meses
Puntos: 2
Dato adicional, si hubiera sido solo sectionDir podría haber ocasionado el error que ya se sabe, intentaré repararlo y después publicaré el disgnostico...
__________________
Ahora T4X es
WinGFX!!!!!
  #25 (permalink)  
Antiguo 19/04/2005, 17:31
T4X
 
Fecha de Ingreso: enero-2004
Ubicación: myT-Base
Mensajes: 254
Antigüedad: 20 años, 10 meses
Puntos: 2
Exclamación

Dato FINAL:

La Base de Datos ya me dio lo suficiente pero tambien haciendo una parte de especificacion de parametro me evita lo anterior, lo demas esta bien era una adicion mas de PHP!!!!!

Agradezco por la ayuda, esto de verdad quedo como queria....!
__________________
Ahora T4X es
WinGFX!!!!!
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 14:14.