MySQL - join de dos campos a una tabla

   
Vista:

join de dos campos a una tabla

Publicado por Eduardo Dorantes (1 intervención) el 04/11/2013 21:56:24
Tengo un problema con una consulta, les explico

Bueno, tenemos la tabla llamada Empresas con dos campos asi

Empresas-->nombre de la tabla
------------------------------
idEmpresa
Nombre

Suponiendo que tiene estos datos

idEmpresa Nombre
---------------------------------
1 CALTEX
2 Burbuja
---------------------------------

y otra que se llama servicios con tres camos asi

servicios---->nombre de la tabla
-----------------------------------
idServicio
Bordadora----->Este campo corresponde al id de empresas
Lavanderia---->Este campo tambien corresponde al id de empresas

Suponiendo que tiene estos datos

idServicio bordadora lavanderia
150 1 2

Bueno si quiero mostrar el nombre de la bordadora haria un join normal asi

Select idServicio,empresas.nombre as Brd from servicios
JOIN empresas on servicios.bordadora=empresas.idEmpresa

Me daria un resultado asi
idServicio Brd
--------------------------
150 CAltex
--------------------------

y si quiero saber cual es la lavanderia haria una consulta asi

Select idServicio,empresas.nombre as Lav from servicios
JOIN empresas on servicios.lavanderia=empresas.idEmpresa

Me daria un resultado asi
idServicio Lav
--------------------
150 Burbuja
--------------------

Pero lo que quiero saber es como puedo hacer que me de un resultado asi
idServicio Brd Lav
-------------------------------------
150 Caltex Burbuja
-------------------------------------

He tratado haciendo esto, pero creo que estoy mal
Select idServicio,empresas.nombre as Brd,empresas.nombre as Lav from servicios
JOIN empresas on servicios.bordadora=empresas.idEmpresa
JOIN empresas on servicios.lavanderia=empresas.idEmpresa

Agradesco sus respuestas
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
Imágen de perfil de xve

join de dos campos a una tabla

Publicado por xve (898 intervenciones) el 05/11/2013 07:08:43
Hola Eduardo, la manera que yo lo haría, seria juntando dos consultas por el idServicio... algo así:

1
2
3
4
5
6
7
8
9
10
11
select * from
(
    Select idServicio,empresas.nombre as Brd from servicios
    JOIN empresas on servicios.bordadora=empresas.idEmpresa
) s1
LEFT JOIN
(
    Select idServicio,empresas.nombre as Lav from servicios
    JOIN empresas on servicios.lavanderia=empresas.idEmpresa
) s2
ON s1.idServicio=s2.idServicio

Coméntanos si te sirve, ok?
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