OT: Problemas con Consulta SQL

24/12/2003 - 13:41 por Matias Iacono | Informe spam
Hola... se que es un OT... pero por ahi alguien sabe...

Tengo dos tablas, una que contiene una lista de datos, pero dos campos
conforman la llave primaria.

Y por otro lado tengo una tabla de relacion, en la cual se le paso la llave
de una tabla X, y las otras dos de la tabla ya mensionada...

Mi problema es simple... quiero saber, de la primera tabla, todos los
registros que no esten en la tabla relacion.

Si fuera una sola llave primaria por cada lado la consulta seria simple

select * from Tabla1 where CampoID not in (select campoid from relacion)

Pero no consigo hacerlo con dos llaves...

Alguna sugerencia???

Gracias

Preguntas similare

Leer las respuestas

#1 Jhonny Vargas P. [MVP]
24/12/2003 - 13:50 | Informe spam
Si es SQL Server puedes utilizar un NOT IN a la otra tabla dime y te
mando un ejemplo... En Access no tengo la menor idea.


Saludos,
Jhonny Vargas P. [MS MVP]
Santiago de Chile


"Matias Iacono" wrote in message
news:
Mostrar la cita
llave
Mostrar la cita
#2 Matias Iacono
24/12/2003 - 14:00 | Informe spam
Si.. es SQL pero igual no me funciona... ya que le hice not in a los dos
campos... pero aunque tengo un valor que no esta en la tabla relacion, no me
lo muestra...

Pero mandamelo.. por ahi algo he hecho mal... no soy muy bueno para los SQLs

"Jhonny Vargas P. [MVP]" escribió en el
mensaje news:
Mostrar la cita
#3 Jhonny Vargas P. [MVP]
24/12/2003 - 14:56 | Informe spam
Aqui va... te mando los ejemplos completos, espero que te sirva, sino me
avisas y lo vemos el viernes...


/*Crear Tablas de Ejemplo */
Create Table Productos (
Codigo int,
Nombre varchar(30)
)

Create Table Detalles (
Id_Detalle int identity(1,1),
Codigo_Producto int,
Cantidad int
)
/*FIN Crear Tablas de Ejemplo */

/* Datos de Ejemplo */
Insert into Productos values (1001, 'Naranja')
Insert into Productos values (1002, 'Pera')
Insert into Productos values (1003, 'Manzana')
Insert into Productos values (1004, 'Limon')
Insert into Productos values (1005, 'Ciruela')
Insert into Productos values (1006, 'Kiwi')
Insert into Productos values (1007, 'Sandía')
Insert into Productos values (1008, 'Melón')


Insert into Detalles(Codigo_Producto, Cantidad) values (1001, 10)
Insert into Detalles(Codigo_Producto, Cantidad) values (1001, 15)
Insert into Detalles(Codigo_Producto, Cantidad) values (1001, 13)
Insert into Detalles(Codigo_Producto, Cantidad) values (1004, 9)
Insert into Detalles(Codigo_Producto, Cantidad) values (1004, 3)
Insert into Detalles(Codigo_Producto, Cantidad) values (1004, 15)
Insert into Detalles(Codigo_Producto, Cantidad) values (1007, 11)
Insert into Detalles(Codigo_Producto, Cantidad) values (1007, 2)
/* FIN Datos de Ejemplo */


/* Para ver Los que están en Detalles */
Select * From Productos where Codigo In (Select Codigo_Producto From
Detalles Where Codigo = Codigo_Producto)

/* Para ver Los que NO están en Detalles */
Select * From Productos where Codigo Not In (Select Codigo_Producto From
Detalles Where Codigo = Codigo_Producto)


/*Borrar Tablas de Ejemplo */
Drop Table Productos
Drop Table Detalles
/*FIN Borrar Tablas de Ejemplo */



Saludos,
Jhonny Vargas P. [MS MVP]
Santiago de Chile



"Matias Iacono" wrote in message
news:
Mostrar la cita
me
Mostrar la cita
SQLs
Mostrar la cita
simple
Mostrar la cita
relacion)
Mostrar la cita
#4 Sashka
24/12/2003 - 16:10 | Informe spam
Suponiendo que las tablas se llaman lista y relacion y que los campos
claves se llaman cmp1 y cmp2

SELECT Lista.cmp1, Lista.cmp2
FROM Lista LEFT JOIN
relacion ON (Lista.cmp2 = relacion.cmp2) AND
(Lista.cmp1 = relacion.cmp1)
WHERE (((relacion.cmp1) IS NULL) AND ((relacion.cmp2) IS NULL));

Sashka

"Matias Iacono" escribió en el mensaje
news:
Mostrar la cita
llave
Mostrar la cita
#5 Matias Iacono
24/12/2003 - 16:25 | Informe spam
Sos un maestro...

Gracias!!! :D

"Sashka" escribió en el mensaje
news:
Mostrar la cita
Ads by Google
Search Busqueda sugerida