Access - Mostrar campos de dos tablas que dependen de otra

 
Vista:
sin imagen de perfil

Mostrar campos de dos tablas que dependen de otra

Publicado por Joaquin (10 intervenciones) el 09/04/2014 08:56:39
Hola a todos, tengo una duda sobre algo que creo debe ser fácil de hacer pero no acierto a ello y ya tengo la cabeza loca.

Tengo tres tablas, Tabla1 se une a Tabla2 por medio de un campo de identificacion y Tabla1 se une a Tabla3 por un campo similar de identificación. Luego por su parte Tabla2 y Tabla3 tienen un campo propio de cada una que no es compatible.

Si Realizo la siguiente consulta utilizando AND no me sale nada, puesto que nunca se cumplen ambas condiciones:
SELECT TABLA1.denominacion, TABLA2.campo_tabla2, TABLA3.campo_tabla3 FROM TABLA1, TABLA2, TABLA3
WHERE TABLA1.identificacion=TABLA2.id_tabla2 AND TABLA1.identificacion=TABLA3.id_tabla3;

Si Realizo la siguiente consulta utilizando OR me sale cada registro multiplicado con todas las combinaciones posibles entre los campos:
SELECT TABLA1.denominacion, TABLA2.campo_tabla2, TABLA3.campo_tabla3 FROM TABLA1, TABLA2, TABLA3
WHERE TABLA1.identificacion=TABLA2.id_tabla2 OR TABLA1.identificacion=TABLA3.id_tabla3;

Yo quiero que me salga sólo una línea por cada registro de la TABLA1 y salga vacío el campo cuando no corresponda, como en la siguiente imagen



Gracias y un saludo.
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

Mostrar campos de dos tablas que dependen de otra

Publicado por Yousuario (1 intervención) el 10/04/2014 09:48:33
Hola,

Tal como has hecho la SELECT es un INNER JOIN, lo que tu quieres es un LEFT JOIN
Puedes encontrar mas información en la red. En wikipedia lo explica bastante bien http://es.wikipedia.org/wiki/Join
También visita esta otra pagina, lo explica con gráfico y creo que queda más claro http://www.codeproject.com/Articles/33052/Visual-Representation-of-SQL-Joins

Lo que buscas seria:
1
2
3
4
5
6
7
SELECT TABLA1.denominacion, TABLA2.campo_tabla2, TABLA3.campo_tabla3
FROM TABLA1
LEFT JOIN TABLA2
    ON TABLA1.identificacion=TABLA2.id_tabla2
LEFT JOIN TABLA3
    ON TABLA1.identificacion=TABLA3.id_tabla3
;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Mostrar campos de dos tablas que dependen de otra

Publicado por Joaquin (10 intervenciones) el 11/04/2014 12:12:38
Muchísimas gracias, no conocía esa sintaxis del JOIN,

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