Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 通过内部联接和where子句更新表_Mysql - Fatal编程技术网

Mysql 通过内部联接和where子句更新表

Mysql 通过内部联接和where子句更新表,mysql,Mysql,得到了如上所示的2个表。我想从“approved.Consumed”更新“leaverecord.Consumed”,其中leaverecord.name=approved.name和leaverecord.leavetype=approved.leavetype。通过获取“组函数的无效使用”的错误来尝试下面的查询 UPDATE leaverecord r INNER JOIN approved a ON r.name = a.name SET r.Consumed = SUM(DATEDIFF

得到了如上所示的2个表。我想从“approved.Consumed”更新“leaverecord.Consumed”,其中leaverecord.name=approved.name和leaverecord.leavetype=approved.leavetype。通过获取“组函数的无效使用”的错误来尝试下面的查询

UPDATE leaverecord r INNER JOIN approved a
ON r.name = a.name
SET r.Consumed = SUM(DATEDIFF(a.todate,a.fromdate))
WHERE r.leavetype = a.leavetype AND
r.name = a.name

计算子查询中消耗的数据,并使用leaverecord进行
内部连接
然后执行
更新
,如下所示。不需要
WHERE
子句

试试这个:

update leaverecord r
inner join (
    select name, leavetype, sum(datediff(todate,fromdate)) consumed
    from approved
    group by name, leavetype
) a on r.name = a.name
and r.leavetype = a.leavetype
set r.consumed = a.consumed;

屏幕截图帮助不大,您能创建一些CREATETABLE和INSERT语句吗?您将很快获得帮助此操作在获得批准后在第4行“a”中进行了一个小的更正