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 に答える