代码之家  ›  专栏  ›  技术社区  ›  Darío Villalta

具有嵌套内部联接和相同列名的SQL查询

  •  0
  • Darío Villalta  · 技术社区  · 6 年前

    我在sql上有4个表:

    组件

    Name, Description, ID

    元素

    ID, Name, Description, Component

    ID, Name, Description, Element

    ID, Name, Description, Practice

    最终日期

    ID, Activity

    Component(ID)---->Element(Component)
    Element(ID)------>Practice(Element)
    Practice(ID)----->Activity(Practice)
    Activity(ID)----->FinalDate(Activity)
    

    我想做一个查询,对于每个组件,我想得到每个活动及其最终日期。

    这就是我现在拥有的

    "select componente.Nombre, componente.Descripcion, elemento.* from Componente componente inner join 
    (select elemento.Componente, practica.* from Elemento elemento inner join 
        ( select practica.Elemento, actividad.* from Practica practica inner join 
            (select actividad.*, fecha.* from Actividad_FechasFinales fecha inner join 
                (select actividad.Practica, actividad.ID from Actividad) 
            actividad on fecha.Actividad = actividad.ID) 
        actividad on actividad.Practica = practica.ID ) 
    practica on practica.Elemento = elemento.ID ) 
    elemento on componente.ID = elemento.Componente"
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   Nick    6 年前

    JOIN 应该够了。注意,我假设有一个 Date FinalDate 表,尽管您在描述中没有提及:

    SELECT c.Name, a.Name, f.Date
    FROM components c
    JOIN elements e ON e.Component = c.ID
    JOIN practice p ON p.Element = e.ID
    JOIN activity a ON a.Practive = p.ID
    JOIN FinalDate f ON f.Activity = a.ID