SQL - Un JOIN aparentemente sencillo

 
Vista:

Un JOIN aparentemente sencillo

Publicado por jevi19 (2 intervenciones) el 03/02/2004 11:08:33
Hola a todos. Mi problema es el siguiente: tengo 3 tablas (Genericos, Internos y Externos) relacionadas x el campo "Codigo" y q se guardan datos de documentación. En la tabla "Genericos" guardo todos los datos genericos de cualquier documento (Título, tema de q trata, fecha de emisión, etc, etc.. ); y luego, en la tabla "Internos" guardo los datos concretos de documentos internos, y en la tabla de "Externos" (obviamente) los datos concretos q se refieren a documentos externos. En resumen, todos los documentos tendrán una entrada en la tabla "Genericos" y luego, a su vez, de cada una de esas entradas de "Genericos" q se corresponda con un documento interno tendrá una entrada en la tabla "Internos" y lo mismo para los externos. Un mismo documento solo puede ser o interno o externo (no puede ser los 2 al mismo tiempo ni puede no tener una entrada en una de esas 2 tablas)
Ahora, lo q quiero es sacar un listado detallado de todos los documentos q tengo, y si son externos mostrar su información de la tabla "externos" y si son internos mostrar su información de la tabla "internos", y hago los siguiente:

SELECT * FROM (Genericos INNER JOIN Internos ON Genericos.codigo = Internos.codigo) INNER JOIN Externos ON externos.codigo <> Internos.codigo

Esto no funciona. He probado tb sacar un listado de los codigos de la tabla "Internos" para hacer la comparación con un NOT IN y tampoco ha funcionado. Tb he probado ponerlo como
"[...]INNER JOIN Externos ON Externos.codigo NOT IN (SELECT codigo FROM Internos)"
y tampoco. Lo más q he conseguido ha sido q me devuelva una tabla vacia, cnd no se me colgaba la aplicación.
X si sirve d alguna ayuda, es una base de datos access atacada con VBA (cutre, cutr
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:Un JOIN aparentemente sencillo

Publicado por Carlos Gil (43 intervenciones) el 03/02/2004 15:24:00
Prueba esto:

SELECT * FROM Genericos
INNER JOIN Internos ON Genericos.codigo = Internos.codigo
UNION
SELECT * FROM Genericos
INNER JOIN Externos ON Genericos.codigo = Externos.codigo
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