我对子查询做错了什么

Orf*_*vre 3 sql-server subquery sql-server-2014

我无法解决这个问题,如何让子查询为每个讲师返回最低的课程权重,它目前只返回最低的,我的子查询是错误的还是外部查询?

问题:显示每位讲师的最低课程作业权重,显示员工 ID、模块 ID 和所选的权重。

SELECT m1.ModuleID, m1.CWWeight, l.StaffID
FROM dbo.module as m1
INNER JOIN dbo.Lecturer as l
    ON m1.ModuleConvenor = l.StaffID
WHERE m1.CWWeight = (SELECT MIN(m2.CWWeight)
                    FROM dbo.Module as m2)
Run Code Online (Sandbox Code Playgroud)

ype*_*eᵀᴹ 5

有很多方法可以做到这一点。这是一个只会稍微改变您的尝试的方法:

SELECT m1.ModuleID, m1.CWWeight, l.StaffID
FROM dbo.module as m1
INNER JOIN dbo.Lecturer as l
    ON m1.ModuleConvenor = l.StaffID
WHERE m1.CWWeight = (SELECT MIN(m2.CWWeight)
                    FROM dbo.Module as m2
                    WHERE m2.ModuleConvenor = l.StaffID) ;
Run Code Online (Sandbox Code Playgroud)