我有一个类表和一个主题表。
类|class_id | class_name | subject_id | date_time|------------------------------------------(想象一下这里有几排)主题|subject_id | subject_name | current_class_count|---------------------------------------------(想象一下这里有几排)
出于索引目的,我想每小时用date_time
比现在大的课程列表更新一次科目列表。
我可以做这样的选择语句:
SELECT count(*)AS num,subject_idFROM类按主题分组_id其中date_time>NOW()
我会得到类似的东西
结果|num|subject_id|----------------|8|1||6|2||9|3|----------------
使用current_class_count
更新主题表的最有效方法是什么?我可以用PHP通过循环并执行几个更新语句来实现这一点,但我认为mySql应该有一个更简单的方法。
编辑:这个怎么样:
更新主题左联接(SELECT count(*)AS num,subject_idFROM类按主题分组_id其中date_time>NOW())AS t ON SUBJECT.SUBJECT_id=t.SUBJECT_idSET SUBJECT.current_class_count=合并(t.num,0)
只要我输入正确,基本上你应该能够每小时运行一次,它会更新你的主题表。
与Microsoft SQL相比,MySQL中在UPDATE语句中联接表有点不同。这里有一个链接:
http://blog.ookamikun.com/2008/03/mysql-update-with-join.html