在一个SQL查询中多次使用SQL子查询?

时间:2014-12-26 22:14:26

标签: mysql subquery

我无法在单个查询中从多个表中检索数据。

我有以下表格:

enter image description here

简要说明:

  • 学生可以学习很多科目,而且很多学生都可以学习科目(表创作研究)

  • 一个教师讲课(FK用于(表科目))

  • 表级为关于学生获得的分数的信息提供了

我试图表达的SQL查询是:找回研究安东尼奥教授的学科的普通学生。

首先,我使用表级的AVG聚合来获得普通学生:

SELECT Id_Student, Name, AVG(Mark) 
AS Average FROM Grade 
GROUP BY Id_Student, Name

但我的麻烦也是使用这个SQL查询的结果并再次使用Lecturer" Antonio"教授的主题结果进行过滤。

是否可以在一个SQL查询中创建它?

1 个答案:

答案 0 :(得分:0)

SELECT Id_Student, Name, AVG(Mark) AS Average FROM Grade
where id_student in 
(
    select student.id_student from subject
    join study on subject.id_subject = study.id_subject
    join student  on study.id_student = student.id_student
    where subject.taught_by = L1
)
GROUP BY Id_Student, Name

你也可以加入GRADE,而不是做我在这里做的子选择。但如果不进行实际测试,很难说它会如何发展。