MYSQL: Un SELECT de varias tablas complicado...

Imaginemos una tabla EMPRESAS y otra DIRECTIVOS en plan sencillo.
La tabla EMPRESAS se compone de (NOMBREEMPRESA, DIRECTOR, VICEPRESIDENTE, SECRETARIO)
La tabla DIRECTIVOS se compone de (NOMBREDIRECTIVO, TELÉFONO)
Quisiera hacer una consulta para que en el mismo registro aparezcan los siguientes datos, aunque una empresa no tenga Secretario o Vicepresidente (campos en blanco en esos casos)
-Nombre de la empresa
-Teléfono del director
-Teléfono del vicepresidente
-Teléfono del secretario
Yo pruebo con lo siguiente "select empresas.NOMBREEMPRESA,directivos1.TELEFONO as TELEFONO1, directivos2.TELEFONO as TELEFONO2, directivos3.TELEFONO as TELEFONO3 from empresas,directivos as directivos1,directivos as directivos2,directivos as directivos3 where empresas.DIRECTOR=directivos1.NOMBRE and empresas.VICEPRESIDENTE=directivos2.NOMBRE and empresas.SECRETARIO=directivos3.NOMBRE" pero si una empresa no tiene los 3 campos director/vicepresidente/secretario rellenados dicha empresa no sale. Quisiera saber porque ocurre esto y que me dieran el Select correcto.

1 respuesta

Respuesta
1
Para empezar, me parece que la base de datos que muestras está mal diseñada. Deberías tener en una tabla los datos exclusivamente de los directivos, con su respectivo cargo, y en otra los datos de las empresas.
Pero, si la realidad de la base de datos es la que muestras, y no la puedes modificar, debes establecer una relación entre las dos tablas (por ejemplo colocando un campo codigoempresa en cada una de ellas), para que la máquina sepa quien es directivo de que, y crear una consulta similar a la siguiente:
SELECT [aqui van lo campos] FROM EMPRESAS.codigoempresa  LEFT JOIN DIRECTIVOS.codigoempresa;
LEFT JOIN permite mostrar los datos de la primera tabla, así no tengan datos en la segunda tabla.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas