none
inner join en tres tablas RRS feed

  • Pregunta

  • hola alguien me podria ayudar a resolver esta consulta

    Select Catalogos.*, TiposCatalogos.descripcion as catalogo, Categorias.descripcion as categoria
    From Catalogos 
    As Catalogos Inner Join TiposCatalogos
    As Catalogos inner Join Categorias
    As TiposCatalogos on (Catalogos.idTipoCatalogo = TiposCatalogos.id)
    As Categorias on (catalogos.idCategoria = Categorias.id)
    where Catalogos.idTipoCatalogo = 6

    intento agregar la descripcion de categoria y la descripcion tipoCatalogo pero no me funciona

    miércoles, 6 de junio de 2012 23:51

Respuestas

  • Select C.*, tc.descripcion, Ct.descripcion 
    From Catalogos c 
    Inner Join TiposCatalogos tc
    (c.idTipoCatalogo = tc.id)
    inner Join ct
    on (ct.idCategoria = C.id)
    where C.idTipoCatalogo = 6

    En resumen pongo arriba una idea de mas o menos como seria tu inner join de 3 tablas.

    Hemos cambiado los alias catalocos es c, ct es categoria, tc es Tipocatalogo.

    No he probado el codigo, por lo que tal vez se me fue algo, pero la idea es esa.


    MVP MCT MCTS Daniel Calbimonte

    http://elpaladintecnologico.blogspot.com

    • Marcado como respuesta niqel viernes, 8 de junio de 2012 17:50
    jueves, 7 de junio de 2012 1:14

Todas las respuestas

  • De entrada dos recomendaciones, la primera es que postees las estructuras de las tablas y datos en forma de insert, para que nos resulte mas viable ayudarte, la segunda es que cuando creas alias en las tablas busques una forma simplificada de hacerlo, no tiene mucho sentido que tu tabla se llama <<Tabla_A>> y le asignes un alias <<Soy_Tabla_A>>, en su lugar es maneja simplemente <<A>>, lo otro, veo que ahi estas duplicando :

    From Catalogos 
    As Catalogos Inner Join TiposCatalogos
    As Catalogos

    Para finalizar, siempre que realices los JOIN, lo idoneo es que lo construyas en par, es decir, Catalogos inner join TiposCatalogos, una vez que hayas verificado el resultado, entonces anexes el otro JOIN para evaluar el resultado.  Lo otro es que te aconsejo revisar la documentación y en especial el uso del operador ON en relaciones de tipo JOIN.  Cualquier duda con gusto te apoyamos.


    "How many years can some people exist before they're allowed to be free" Bob Dylan Email: info@geohernandez.com Blog: geeks.ms/blogs/ghernandez

    jueves, 7 de junio de 2012 0:20
  • Select C.*, tc.descripcion, Ct.descripcion 
    From Catalogos c 
    Inner Join TiposCatalogos tc
    (c.idTipoCatalogo = tc.id)
    inner Join ct
    on (ct.idCategoria = C.id)
    where C.idTipoCatalogo = 6

    En resumen pongo arriba una idea de mas o menos como seria tu inner join de 3 tablas.

    Hemos cambiado los alias catalocos es c, ct es categoria, tc es Tipocatalogo.

    No he probado el codigo, por lo que tal vez se me fue algo, pero la idea es esa.


    MVP MCT MCTS Daniel Calbimonte

    http://elpaladintecnologico.blogspot.com

    • Marcado como respuesta niqel viernes, 8 de junio de 2012 17:50
    jueves, 7 de junio de 2012 1:14