Quiero saber en Access que registros de la tabla 1 no tienen registros asociados en la tabla varios

Hola Angeles,
Mi problema es el siguiente, tengo una base compuesta por varias tablas, y dentro de ella dos con una relación uno a varios. Pues bien, quiero saber que registros de la tabla uno no tienen registros asociados en la tabla varios. Para esto intento ejecutar la siguiente consulta de selección:
SELECT campo1(clave primaria)
FROM tabla1
WHERE campo1 NOT IN (SELECT campo2 FROM tabla2
WHERE campo2 IS NOT NULL);
Pero tras ejecutarla la consulta se queda colgada, he esperado hasta 15 minutos, por si acaso, y no hay manera.
Mi duda sobre si puede deberse al número de registros (la tabla principal tiene unos 70000 registros y la tabla secundaria unos 250000) se debe a que cuando ejecuto esa misma consulta con una base de prueba, con una docena de registros, funciona perfectamente.
He encontrado un apaño exportando las tablas a Mysql, al ejecutar allí la consulta si que funciona, pero resulta un poco pesado tener que exportar las tablas a través de ODBC cada vez que quiero hacer una consulta de este tipo.
¿Se te ocurre porque se bloquea Access con este tipo de consulta?
Gracias de antemano por tu tiempo.

1 respuesta

Respuesta
1
Creo que es por el número de registros, prueba a poner Campo1 y Campo2 como claves, se agiliza la consulta.
Si no, puedes probar esta sql (quitando la relación preestablecida entre ellas de 1 a varios):
SELECT Tabla2.Campo2
FROM Tabla1 LEFT JOIN Tabla2 ON Tabla1.Campo1 = Tabla2.Campo2
WHERE Tabla2.Campo2 Is Null;
Me cuentas.
Hola de nuevo,
Gracias por responder tan rápido. A la consulta que me indicas supongo que hay que añadirle la subconsulta ... NOT IN (SELECT...), porque sólo quiero que me salgan los registros que no tienen relación con ningún otro de la otra tabla, pero aún así la consulta se queda colgada.
¿No se te ocurrirá ninguna otra posibilidad?
No tienes que añadirle ninguna subconsulta, con Left Join lo que haces es que te saque todos los registros de Tabla1 y con Campo2 is Null filtras los registros que no estén en Tabla2.
Si así también se cuelga, creo que tendremos que ir a utilizar código.
Me cuentas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas