SQL - Registros

 
Vista:

Registros

Publicado por cintia (2 intervenciones) el 07/01/2011 22:05:35
Hola a todos...

Necesito seleccionar registros que no se repite en dos tablas que tiene la misma estructura.
Si alguien me puede ayudar. Gracias!!
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:Registros

Publicado por Ariel Bálsamo (9 intervenciones) el 10/01/2011 14:28:27
Si pudieras poner un ejemplo de las tablas y del resultado que quieres obtener, sería más fácil ayudarte.
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
sin imagen de perfil
Val: 806
Bronce
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

RE:Registros

Publicado por Leonardo Josué (1173 intervenciones) el 10/01/2011 17:34:09
Buenos días Cintia si entendí correctamente lo que necesitas saber es qué registros que aparecen en tu tabla A no están en tu tabla B y viceversa correcto??? esto se puede lograr de varias formas, todo depende del manejador de BD que estás utilizando, por ejemplo con SQL Server sería utilizando el operador EXCEPT, en ORACLE existe el operador MINUS, pero en MySQL si no mal recuerdo lo tienes que hacer mediante consultas explícitas utilizando INNER JOIN y USING, o EXISTS, IN, etc.

Te pongo un ejemplo de cómo se haría en SQL Server, si utilizas otro manejador es cuestión que nos comentes para poder ayudarte a encontrar la equivalencia.

declare @Tabla1 table (id int, descripcion varchar(50))
declare @Tabla2 table (id int, descripcion varchar(50))
insert into @Tabla1 values (1, 'uno')
insert into @Tabla1 values (2, 'dos')
insert into @Tabla1 values (3, 'tres')
insert into @Tabla1 values (4, 'cuatro')

insert into @Tabla2 values (3, 'tres')
insert into @Tabla2 values (4, 'cuatro')
insert into @Tabla2 values (5, 'cinco')
insert into @Tabla2 values (6, 'seis')

(select * from @Tabla1 except select * from @Tabla2)
union
(select * from @Tabla2 except select * from @Tabla1)

La tabla1 contiene los registros 1,2,3,4 la tabla 2 contiene los registros 3,4,5,6, por lo tanto los registros 1 y dos solo aparecen en la tabla 1, los registros 5 y 6 sólo aparecen en la tabla 2, pero los registros 3 y 4 están repetidos en ambas tablas. La consulta te devolverá entonces los registros 1,2,5,6 que son únicos en cada una de las tablas.

Saludos y espero que te sea de ayuda.
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

RE:Registros

Publicado por cintia (2 intervenciones) el 10/01/2011 18:00:47
Con el EXCEPT pude recuperar los registros. Gracias 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