evitar repetir joins
Buenas tardes, podria alguien ser tan amable de ayudarme con la sgte consulta?
tengo una tabla conductores con la sgte estructura:
[U]tabla conductores[/U]
id_conductor
nombre
apellido
luego una tabla bitacora con ua estructura como esta:
[U]tabla bitacora[/U]
veh
id_conductor_1
id_conductor_2
id_conductor_3
al hacer mi consulta y que me muestre el nombre del conductor hago lo sgte:
SELECT b.veh, CONCAT(c.apellido, ', ', c.nombre) conductor_1, CONCAT(d.apellido, ', ', d.nombre) conductor_2, CONCAT(e.apellido, ', ', e.nombre) conductor_3
FROM bitacora b
LEFT JOIN conductores c ON c.id_conductor = b.id_conductor_1
LEFT JOIN conductores d ON d.id_conductor = b.id_conductor_2
LEFT JOIN conductores e ON e.id_conductor = b.id_conductor_3
esto me resulta pero el problema es que esta es una simplificación de la consulta por lo que me resulta impráctico hacerlo así, estoy seguro que debe haber un forma correcta y eficiente de hacer esta consulta pero estoy un poco perdido en mysql
cualquier luz será agradecida u_u
Y est te funciona:
SELECT b.veh, CONCAT(c.apellido, ', ', c.nombre) conductor_1, CONCAT(d.apellido, ', ', d.nombre) conductor_2, CONCAT(e.apellido, ', ', e.nombre) conductor_3
FROM bitacora b
LEFT JOIN conductores c ON c.id_conductor = b.id_conductor_1 OR c.id_conductor = b.id_conductor_2 OR c.id_conductor = b.id_conductor_3
La verdad no lo he probado :-? pero intentalo :-D
quisiera evitar esto:
LEFT JOIN conductores c ON c.id_conductor = b.id_conductor_1
LEFT JOIN conductores d ON d.id_conductor = b.id_conductor_2
LEFT JOIN conductores e ON e.id_conductor = b.id_conductor_3
¿Conoces a alguien que pueda responder esta pregunta? Comparte el link en Twitter o Facebook
Es necesario registrarse para poder participar en el foro! Si ya tienes una cuenta puedes entrar y comentar en este foro.