Ver Mensaje Individual
  #2 (permalink)  
Antiguo 12/03/2014, 07:07
Avatar de gnzsoloyo
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, 5 meses
Puntos: 2658
Respuesta: Duda con Relacón de tablas

Cita:
el problema es que TBL2 puede tener de 1 a N registros y por ende me trae TODOS los registros repetidos y no tengo forma de diferenciarlos. Hay algo que estoy diseñando mal
No, no estás haciendo nada mal.
Si la relación entre la tabla 1 y la tabla 2 es 1:N, donde la T2 es de cardinalidad N, siempre se repetirá una instancia de la T1 que se relacione con la T2, por cada relación válida que exista.
Eso es el resultado esperado y normal de esa consulta.
Ahora bien, si lo que quieres es generar un reporte donde cada instancia de la T1 sólo aparezca en la primera columna de la primera línea, y sólo se diferencie en la segunda columna, eso lo haces de dos formas:
1) Por programación, en especial en paginas web. Es simple y sencillo, pero off-topic de este foro. Dependerá de qué lenguaje estés usando.
2) En MySQL, usando WITH ROLLUP en la cláusula GROUP BY sobre el campo de la T1, pero eso te traerá NULL en cada uno de los subsiguientes registros...

Código MySQL:
Ver original
  1. SELECT T1.id, T1.nombre, T1.apellido apellidoT1, T2.apellido atelllidoT2
  2. FROM TBL1 T1 INNER JOIN TBL2 ON T1.id = T2.id_tbl1_rel
  3. GROUP BY T1.id, T1.nombre, T1.apellido WITH ROLLUP
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)