Sql 查询-限制教师可以教授的班级数量
我正在做我的高级项目。在线注册系统和网站的迷你版。在假设中,我们希望将一名教师一学期可以教的班级数量限制在3个 TblEmployee包含:emp_ID键,可以教主题的前4个字母。 TBL课程包含:课程ID键,课程键入主题的前4个字母。 TblClass包含:ClassID键、emp_ID FK、课程ID FK学期时间段 到目前为止,这在选择教授该课程的合适教师方面效果良好:Sql 查询-限制教师可以教授的班级数量,sql,Sql,我正在做我的高级项目。在线注册系统和网站的迷你版。在假设中,我们希望将一名教师一学期可以教的班级数量限制在3个 TblEmployee包含:emp_ID键,可以教主题的前4个字母。 TBL课程包含:课程ID键,课程键入主题的前4个字母。 TblClass包含:ClassID键、emp_ID FK、课程ID FK学期时间段 到目前为止,这在选择教授该课程的合适教师方面效果良好: SELECT * FROM tblEmployee, tblCourse WHERE tblEmployee.ca
SELECT *
FROM tblEmployee, tblCourse
WHERE tblEmployee.canTeach = tblCourse.course_Type
AND tblClass.course_ID = ?
但是,我想补充一点,如果emp_ID COUNT<3,则从tblClass中包括这些,并排除大于或等于3的,即它们不会显示在下拉列表中
我试过了,但没用
SELECT *
FROM tblEmployee, tblCourse
WHERE tblEmployee.canTeach = tblCourse.course_Type
AND tblClass.course_ID = ?
INNER JOIN (SELECT
tblEmployee.emp_ID, tblClass.emp_ID
FROM
tblEmployee, tblClass
GROUP BY
tblClass.emp_ID
HAVING
count(*) < 3 AND tblClass.emp_ID = tblEmployee.emp_ID)
and semester = ?
任何帮助都将不胜感激。我将从子查询开始,细化它,并使您的语法保持一致
SELECT
tblClass.emp_ID
FROM
tblClass
where semester = ?
GROUP BY
tblClass.emp_ID
HAVING count(tblClass.emp_ID) < 3
据我所知,表中的ID不到教授少于3门课程的教师的3倍
对于外部查询,您需要满足其条件但也在内部集合中的员工。同样,要使语法一致。那就试试看吧
SELECT *
FROM tblEmployee inner join tblCourse
on tblEmployee.canTeach = tblCourse.course_Type
where tblClass.course_ID = ?
and tblEmployee.emp_id
in
{
SELECT
tblClass.emp_ID
FROM
tblClass
where semester = ?
GROUP BY
tblClass.emp_ID
HAVING count(tblClass.emp_ID) < 3
}
看看这有什么用。试着澄清你问题的标题!迈克,你太棒了。谢谢你。它工作得很好。这就是我最终得到的结果:string commandText=SELECT*FROM tblEmployee internal JOIN tblEmployee.canTeach=tblCourse.course\u Type其中tblCourse.course\u ID=?通过tblClass.emp_ID具有counttblClass.emp_ID<3的tblClass.emp_ID从tblClass组中选择tblClass.emp_ID中的tblEmployee.emp_ID;我需要将sem_时间向上移动,可能还需要设置一个会话变量以使其工作,因为现在它未被选中。因此,如果我包括学期,我会得到一个错误。