
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.
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


0