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