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

时间:2018-10-09 02:43:15

标签: mysql sql

我在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 个答案:

答案 0 :(得分:0)

我认为您不需要所有这些子查询,简单的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