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

Inner Join a dos tablas idénticas

Estas en el tema de Inner Join a dos tablas idénticas en el foro de SQL Server en Foros del Web. Que tal! En dos tablas de iguales campos y registros, en su momento quise saber como hacer para comparar las dos si una de los ...
  #1 (permalink)  
Antiguo 10/06/2014, 18:39
 
Fecha de Ingreso: noviembre-2010
Mensajes: 175
Antigüedad: 13 años, 5 meses
Puntos: 1
Inner Join a dos tablas idénticas

Que tal!


En dos tablas de iguales campos y registros, en su momento quise saber como hacer para comparar las dos si una de los dos tablas surgió alguna modificación en uno de sus campos (referenncia), lo cual averigué y la solucioné usando el comando except.

Mi duda era la siguiente, erroneamente en un comienzo quise cruzar las dos tablas con un join relacionando por referencia a lo que me arojó lo siguiente:


tabla 1: referencia 125, azul, referencia 125, verde, referencia 125, rojo, referencia 126, azul, referencia 127, marrón

tabla 2: referencia 125, azul, referencia 125, verde, referencia 125, rojo, referencia 126, azul, referencia 127, marrón

Select t1.referencia from tabla1 t1
inner join t2
on t1.referencia = t2.referencia


referencia
125
125
125
125
125
125
125
125
125
126
127


Mi duda era sacarme la curiosidad del por qué en la referencia 125 en vez de arrojar tres registros trajo nueve.

Saludos
  #2 (permalink)  
Antiguo 10/06/2014, 20:47
 
Fecha de Ingreso: julio-2012
Ubicación: Israel
Mensajes: 360
Antigüedad: 11 años, 9 meses
Puntos: 40
Respuesta: Inner Join a dos tablas idénticas

Tu Select se sirve para encontrar las coincidencias entre las tablas, y no las diferencias (el Except o el Full Outer Join).
La consulta debe se así:
Código SQL:
Ver original
  1. SELECT t1.referencia FROM tabla1 t1
  2. INNER JOIN t2
  3. ON t1.referencia = t2.referencia
  4.    AND t1.color=t2.color;
porque la clave primaria esta construida de las dos columnas en este caso.
Generalmente, en cualquier Join, en la clausula On deben aparecer todas las columnas de la clave primaria del lado 1 (de la relación 1:N o 1:1 en este caso).
__________________
El Castellano no es mi lengua materna: discúlpenme por los errores gramaticales.
Mi blog

Etiquetas: join, registro, select, siguiente, tabla, tablas
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 13:13.