选择与特定条件匹配的分组,SQL

时间:2015-10-17 23:35:53

标签: sql

我有两个关系,一个是教师能够教授的区域列表(AreasOfInstructor(InstructorNo,AreaName)),另一个是返回AreaName列表的子查询的结果。我希望按AreaOfInstructorInstructorNo关系进行分组,然后返回能够教授子查询返回的所有区域的每个教师(由InstructorNo表示)。

我的尝试:

SELECT InstructorNo
FROM AreasofInstructor
GROUP BY InstructorNo
/**WHERE THE GROUP CONTAINS* (the list of AreaNames returned by the subquery)*/

我不确定实际的SQL命令是什么,它将实现最后一行星星之间的东西。谢谢你的帮助!

编辑:为了清楚起见,我正在寻找的是那些能够在子查询返回的区域进行教学的教师。

2 个答案:

答案 0 :(得分:2)

要执行此操作,您可以加入两个关系,按InstructorNo分组,然后验证每个AreaName的{​​{1}}个独特统计数与InstructorNo的不同数量相匹配} {s} AreaName关系。

AreaNames

答案 1 :(得分:1)

最好使用公用表表达式比子查询更具可读性。

检查这是否是您要找的?

WITH Areas (AreaName)
AS
(
    *sub-query goes here*
)
SELECT DISTINCT 
    InstructorNo
FROM  
    AreasOfInstructor AOI
INNER JOIN 
    Areas A ON AOI.AreaName = A.AreaName