0

我有一张教员桌,每个教员手下都有一定数量的学生。所以有一个“当前”列,它是当前在他们下面的学生人数。

但是,我不想 ++ 和 - 每次我将学生切换到另一个教师时。有没有办法通过使用 count() 的查询来更新列?我发现使用查询“select count() from student where advisor = 2”更容易、更准确,例如使用我当前的列。

4

2 回答 2

2

为此,请使用视图:

CREATE VIEW studentCount AS 
SELECT 
    profID, 
    profName, 
    whatever, 
    (SELECT COUNT(*) 
     FROM studentTable 
     WHERE studentTable.profID=profTable.profID
    ) AS studentCount 
FROM profTable;

显然,这需要稍微调整以适应您的架构,但本质上,设置您的视图以使表的所有列都包含教师信息,并在末尾添加一个列来计算您想要的数字。

于 2010-06-22T18:48:54.603 回答
1

触发器可以解决您的问题吗?

http://dev.mysql.com/doc/refman/5.5/en/triggers.html

您可以创建一个触发器,每次学生切换教师时自动更新您的教师表。

于 2010-06-22T18:50:11.347 回答