gpt4 book ai didi

php - mySQL UPDATE table based on SELECT (count) of a different table

转载 作者:行者123 更新时间:2023-11-29 02:35:13 26 4
gpt4 key购买 nike

我有一张类(class)表和一张科目表。

CLASS|class_id|class_name|subject_id|date_time|------------------------------------------(imagine some rows here)SUBJECT|subject_id|subject_name|current_class_count|---------------------------------------------(imagine some rows here)

出于索引目的,我想每小时用 date_time 大于现在的类(class)列表更新主题列表。

我可以像这样做一个选择语句:

SELECT count(*) AS num, subject_idFROM classGROUP BY subject_idwhere date_time > NOW()

我会得到类似的东西

RESULT|num|subject_id|----------------| 8 |        1 || 6 |        2 || 9 |        3 |----------------

current_class_count 更新主题表的最有效方法是什么?我可以通过循环执行多个更新语句来使用 PHP 来完成此操作,但我认为 mySql 应该有更简单的方法。

最佳答案

编辑:这个怎么样:

UPDATE SUBJECTLEFT JOIN (SELECT count(*) AS num, subject_idFROM classGROUP BY subject_idwhere date_time > NOW()) AS t ON SUBJECT.subject_id = t.subject_idSET SUBJECT.current_class_count = coalesce( t.num, 0 )

只要我输入正确,基本上您应该能够每小时运行一次,它会更新您的 SUBJECT 表。

与 Microsoft SQL 相比,在 MySQL 中使用 UPDATE 语句连接表有点不同。这是一个关于它的链接:

http://blog.ookamikun.com/2008/03/mysql-update-with-join.html

关于php - mySQL UPDATE table based on SELECT (count) of a different table,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6209215/

26 4 0