SQL Server - Comparacion de dos tablas (sin INNER JOIN)

 
Vista:

Comparacion de dos tablas (sin INNER JOIN)

Publicado por Mario (2 intervenciones) el 10/11/2007 06:26:32
Hola, probablemente alguno de uds haya resuelto este tema antes.
Necesito saber si dos tablas con la misma estructura contiene en sus registros y en sus campos información exactamente igual. Me explico:
Ejemplo:
Tabla 1
Campo 1 - Campo 2 - Campo 3
1 - AA - aaaaa
2 - BB - bbbbb
3 - CC - ccccc

Tabla 2
Campo 1 - Campo 2 - Campo 3
1 - AA - aaaaa
2 - BB - bbbbb
3 - CC - xxxxxx

En este caso, considerando la Tabla 1 como base, necesito obtener el 3er registro de la Tabla 2
Obviamente en la vida real las tablas tienen mucho más que 3 campos, por lo que el INNER JOIN no sería tan eficiente.

Tal vez esto suene a roca, pero quizá alguien conozca la manera de hacer comparaciones binarias registro por registro en SQL (o algún otro método de comparación para TODAS las columnas)

De antemano gracias por su atención
Slds,
Mario.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Comparacion de dos tablas (sin INNER JOIN)

Publicado por Edgar (44 intervenciones) el 20/11/2007 22:57:18
si lo q quieres es comparar todas las columnas de tu tabla como si fueran una, pues tube un caso igual, lo que hice fue juntar todos los datos en una sola columna, a todos los comverti en varchar ( alos q no eran de ese tipo), separados de por espacio en blanco, si eso es lo q deseas espero entonces haberte ayudado, saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Comparacion de dos tablas (sin INNER JOIN)

Publicado por Carlos Reyes (49 intervenciones) el 06/12/2007 00:41:47
Aqui lo tienes

CREATE TABLE #tmp1(Campo1 INTEGER,Campo2 VARCHAR(10),Campo3 VARCHAR(10))

CREATE TABLE #tmp2(Campo1 INTEGER,Campo2 VARCHAR(10),Campo3 VARCHAR(10))

INSERT INTO #tmp1 VALUES(1,'AA','aaaa' )
INSERT INTO #tmp1 VALUES(2,'BB','bbbb' )
INSERT INTO #tmp1 VALUES(3,'CC','cccc' )

INSERT INTO #tmp2 VALUES(1,'AA','aaaa' )
INSERT INTO #tmp2 VALUES(2,'BB','bbbb' )
INSERT INTO #tmp2 VALUES(3,'CC','xxxx' )

SELECT * FROM #tmp1 WHERE NOT EXISTS(SELECT * FROM #tmp2 WHERE #tmp1.Campo3 = #tmp2.Campo3)

DROP TABLE #tmp1,#tmp2


Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar