SQL - Excluir registros

   
Vista:

Excluir registros

Publicado por Vic (10 intervenciones) el 04/05/2011 00:35:17
Hola a todos

Tengo dos tablas con la misma estructura en una base de access.
Necesito hacer una consulta sql que muestre todos los registros combinados de las dos tablas, excluyendo los que sean iguales.
Lo he intentado con UNION SELECT, pero así no excluye los registros iguales.

Un saludo y gracias por todo
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

Excluir registros

Publicado por Leonardo Josué (880 intervenciones) el 04/05/2011 17:02:51
Hola Vic.

Me parece extraño lo que comentas, porque la cláusula UNION sí elimina registros duplicados, entendiéndose como duplicados aquellos donde TODOS SUS CAMPOS TIENEN LOS MISMOS VALORES, si uno solo de ellos es diferente entonces ya no es un registro duplicado y por lo tanto mostrará ambos.

pongamos un ejemplo: supongamos que tienes dos tablas con la siguiente estructura

1
2
3
4
5
6
7
8
9
10
11
12
13
Tabla1
id|descripcion
------------------
1|uno
2|dos
3|tres
 
Tabla2
id|descripcion
------------------
1|uno
2|dos
3|trez


Si tu hace la unión entre las dos tablas:
1
2
3
select * from tabla1
union
select * from tabla2


el resultado sería
1
2
3
4
5
6
id|descripcion
------------------
1|uno
2|dos
3|tres
3|trez


Si observas, aunque los registros 1 y 2 existen en ambas tablas sólo los presenta una vez, pero en el caso del registro 3, aunque existe en las dos tablas la descripción es diferente, por lo tanto ya no es un registro duplicado.

Revisa la información de tus registros, es posible alguno de los campos sea diferente y por lo tanto no esté eliminando.

Saludos
Leo
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

Excluir registros

Publicado por Vic (10 intervenciones) el 04/05/2011 22:59:40
Hola Leo

Muchas gracias por tu rápida respuesta.
Efectivamente, estás en lo cierto. Los datos de algunos campos no son exactamente iguales.
Entonces, la cuestión es, ¿cómo puedo excluir los registros cuando sólo dos de sus campos coinciden?

Muchas gracias por tu amabilidad
Un saludo
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

Excluir registros

Publicado por Leonardo Josué (880 intervenciones) el 09/05/2011 23:07:18
Hola de nuevo Vic:

No pude contestar antes, pues tomé algunos días de descanso y hasta hoy pode checar los post publicados. Con respecto a tu pregunta, para hacer lo que quieres, puedes seguir utilizando la idea del UNION, pero al unir la segunda tabla excluir (con un NOT EXIST) aquellos registros que se encuentran en la tabla1. Partiendo del ejemplo que te puse en el post anterior, pongo otro de cómo sería más o menos el caso:

supongamos que tenemos las siguientes tablas:

1
2
3
4
5
6
7
8
9
10
11
12
TABLA1
id1         id2         descripcion
----------- ----------- -----------
1           1           uno
2           2           dos
3           3           tres
 
TABLA2
id1         id2         descripcion
----------- ----------- -----------
3           3           trez
4           4           cuatro


Supongamos ahora que queremos unir las tablas, pero donde los campos id1 y id2 no se repitan. para el caso dejé el mismo registro con tres (en la tabla1) y trez (en la tabla2), si observas las descripciones son distintas, pero los id's son los mismos, por lo tanto la idea sería que el registro trez no lo insertara correcto??? puedes hacer algo como esto:

1
2
3
4
5
6
select * from Tabla1 T1
union
select * from Tabla2 T2
where not exists
(select * from Tabla1 T3
where T3.id1 = T2.id1 and T3.id2 = T2.id2)


De esta manera el resultado de la consulta sería:

1
2
3
4
5
6
id1         id2         descripcion
----------- ----------- -----------
1           1           uno
2           2           dos
3           3           tres
4           4           cuatro


Saludos
Leo
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

Excluir registros

Publicado por Ox (1 intervención) el 06/06/2013 17:22:03
Leo, buscando el mismo tema me he encontrado con tu solución, funciona de lujo. Muchas gracias por tu aporte!
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