none
UNIR 4 TABLAS EN MYSQL RRS feed

  • Pregunta

  • Hola necesito ayuda para mostrar varios campos de 4 tablas logro hacer la consulta pero mi problema es que los primero 3 campos no me muestra los datos me aparece en NULL y las si existen datos , esta es mi consulta haber si me dicen cual es mi problema: 

    SELECT a.Id_ficha, a.Imagen, b.Id_orden, c.Id_matri, c.Falla, c.Accion, c.Frecuencia
    FROM hoja_vida AS d
    INNER JOIN ficha a ON a.Id_ficha = d.Id_ficha
    LEFT JOIN orden_trabajo b ON b.Id_orden = d.Id_orden
    RIGHT JOIN matriz c ON c.Id_matri = d.Id_matri

    (si se le puede hacer una mejor o algunos conosejos se agradece de ante mano)

    sábado, 12 de enero de 2019 4:27

Todas las respuestas

  • Hola Antunez91:

    Supongo que es un poco temprano para mi y no puedo pensar todavía muy bien, pero yo al menos no he visto nunca, y no veo claro que eso sea una buena práctica, utilizar left join a un conjunto y acto seguido utilizar right join.

    A lo mejor se puede, pero a mi, ahora mismo, eso me parece que no puede devolver, el resultado deseado nunca.

    Vete por partes.

    Por otro lado por el nombre de las tablas, parece como si hoja_Vida y ficha fueran 1 a n. Y el conjunto de estas, pudiera tener 0 a n en ordenes de trabajo..... pero la relación con matriz ¿? 0 ..n o 1 a n o 1..1

    En cuanto a la consulta, yo haría lo siguiente:

    SELECT d.*,
    a.Id_ficha, a.Imagen, b.Id_orden, c.Id_matri, c.Falla, c.Accion, c.Frecuencia
    FROM hoja_vida AS d
    INNER JOIN ficha a ON a.Id_ficha = d.Id_ficha
    LEFT JOIN orden_trabajo b ON b.Id_orden = d.Id_orden

     No se como se llama el campo id de d, por eso he puesto d.*

    Si el conjunto resultante me devuelve lo que yo quiero, ya tengo localizado el problema.

    • Propuesto como respuesta Sergio Parra lunes, 14 de enero de 2019 7:54
    sábado, 12 de enero de 2019 6:29
  • Amigo muchas gracias ya vi mi error es que no puse el Id de hoja_vida por eso no me mostraba los datos como queria nuevamente gracias por tu ayuda
    lunes, 14 de enero de 2019 3:55