Consulta INNER con *TODOS* los datos de la primera tabla ..

26/06/2004 - 15:02 por MhBeyle | Informe spam
Seguramente sea esta una pregunta sencilla, pero bueno, la hago a ver
si alguien me responde y voy aprendiendo ...

Tengo una consulta parecida a esto:

SELECT dbo.TABLA_1.COD, dbo.TABLA_2.COD
FROM dbo.TABLA1 RIGHT OUTER JOIN dbo.TABLA_1.COD = dbo.TABLA_2.COD

(Más o menos, que es muy larga :) ) ..

Bien, esto me devuelve todos los campos de la primera tabla y aquellos
de la segunda que formen parte de la relación. Ahora bien, lo que
necesito es que aparezcan TODOS los campos de la primera tabla, tal
cual están, sin combinación, y a estos se añadan, en distintos
registros, los campos coincidentes. Con la relación que tengo ahora
mismo, los campos de la primera tabla que coinciden con la segunda,
aparecen combinados y yo lo que quiero es que, además de esto,
aparezcan como en el origen. Es decir, si tengo una primera tabla con
veinte registros, quiero que aparezcan esos veinte registros tal cual
y además, los cuatro, cinco o seis mil registros coincidentes con la
segnda tabla, añadidos a la primera.

Espero haberme explicado con claridad .

Muchas gracias,

MhBeyle __
 

Leer las respuestas

#1 Javier Loria
26/06/2004 - 17:46 | Informe spam
Hola:
Disculpa pero no entiendo bien lo que deseas :(
Un punto que puede ayudar seria la terminologia, las Tablas tienen FILAS
y COLUMNAS. Aunque no crear no tienen Campos ni Registros.
Hasta donde entendi quieres todas las FILAS de la primera Tabla y las
FILAS de la segunda que cumplan la condicion lo que lograste con el RIGTH
OUTER JOIN.
Donde no se entiende es cuando mezclas el concepto de Campos (columnas?)
y dices que quieres combinarlos con la existentes. No se si esa combinacion
es "Vertical" u "Horizontal". O sea si quieres agregarlas al conjunto de
datos resultante como FILAS o como COLUMNAS.
Una posiblidad es que esteS buscando el UNION o el UNION ALL, esta
instruccion permite combinar dos o mas conjuntos de datos para que se
contengan todas las filas. Graficamente seria:
Tabla1 Tabla2
1, 'Uno' 4, 'Cuatro'
2, 'Dos' 5, 'Cinco'
3, 'Tres' 2, 'Dos'
Un ejemplo de UNION es:
SELECT ... FROM Tabla1 UNION SELECT ... FROM Tabla2
El resultado es
Resultado
1, 'Uno'
2, 'Dos'
3, 'Tres'
4, 'Cuatro'
5, 'Cinco'
Un ejemplo de UNION ALL es:
1, 'Uno'
2, 'Dos'
3, 'Tres'
4, 'Cuatro'
5, 'Cinco'
2, 'Dos'
El primero elimina las filas repetidas y el segundo no.
Saludos,


Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.

MhBeyle escribio:
Seguramente sea esta una pregunta sencilla, pero bueno, la hago a ver
si alguien me responde y voy aprendiendo ...

Tengo una consulta parecida a esto:

SELECT dbo.TABLA_1.COD, dbo.TABLA_2.COD
FROM dbo.TABLA1 RIGHT OUTER JOIN dbo.TABLA_1.COD = dbo.TABLA_2.COD

(Más o menos, que es muy larga :) ) ..

Bien, esto me devuelve todos los campos de la primera tabla y aquellos
de la segunda que formen parte de la relación. Ahora bien, lo que
necesito es que aparezcan TODOS los campos de la primera tabla, tal
cual están, sin combinación, y a estos se añadan, en distintos
registros, los campos coincidentes. Con la relación que tengo ahora
mismo, los campos de la primera tabla que coinciden con la segunda,
aparecen combinados y yo lo que quiero es que, además de esto,
aparezcan como en el origen. Es decir, si tengo una primera tabla con
veinte registros, quiero que aparezcan esos veinte registros tal cual
y además, los cuatro, cinco o seis mil registros coincidentes con la
segnda tabla, añadidos a la primera.

Espero haberme explicado con claridad .

Muchas gracias,

MhBeyle __

Preguntas similares