Mysql 通过内部联接和where子句更新表
得到了如上所示的2个表。我想从“approved.Consumed”更新“leaverecord.Consumed”,其中leaverecord.name=approved.name和leaverecord.leavetype=approved.leavetype。通过获取“组函数的无效使用”的错误来尝试下面的查询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
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”中进行了一个小的更正