mysql - 使用其他表中的值之和更新 sql 表中的记录

标签 mysql sql phpmyadmin

我是 SQL 新手。我有一个表employee,它有字段eIDeLoad。此外,我还有表ongoing_projects,它有pIDeID(这两个是主要的)和eLoad。我试图为每个员工插入所有 eLoad 的总和。我有一个伪代码的想法,但我无法实现它。有任何想法吗?谢谢你!

For each eID in table employee
DO
UPDATE `employee` SET eload=(
  SELECT SUM (eload) as eload
  FROM ongoing_projects 
);

最佳答案

如果我理解它,你会想做这样的事情:

UPDATE employee e
SET e.eLoad = (SELECT SUM(op.eLoad) FROM ongoing_projects op WHERE op.eID=e.eID);

它会使用 ongoing_projects.eLoad 的总和更新 employees.eLoad 列中的每一行,其中正在进行的_projects.eID=实际员工 eID

或者,如果您想将 employees.eLoadongoing_projects eLoad 相加,那么查询可能如下:

UPDATE employee e
SET e.eLoad = e.eLoad + (SELECT SUM(op.eLoad) FROM ongoing_projects op WHERE op.eID=e.eID);

关于mysql - 使用其他表中的值之和更新 sql 表中的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24221321/

相关文章:

php - 准备使用选择查询失败的准备语句

python - 将变量(表名,数据)传递给python mysql查询

mysql - 如何在 docker compose 上修复 'The server requested authentication method unknown to the client [caching_sha2_password]'?

mysql - SQL 我的子查询永远加载

php - 自动更新数据库中的日期列

mysql - 合并 mysql 中 2 行的搜索

mysql - 如何有效地存储一个类似于 Tinder 的 2-way "like"系统?

mysql - 表中的数据库列限制

sql - 将多个查询转换为单行

php - 如何将两个 UPDATE 查询合并为一个不同的 WHERE 和 SET?