Jad*_*ias 1 mysql mysql-error-1093
我可以做这个:
SELECT t2.value + sum(t3.value)
FROM tableA t2, tableB t3
WHERE t2.somekey = t3.somekey
GROUP BY t3.somekey
Run Code Online (Sandbox Code Playgroud)
但是怎么做呢?
UPDATE tableA t1
SET speed = (
SELECT t2.value + sum(t3.value)
FROM tableA t2, tableB t3
WHERE t2.somekey = t3.somekey
AND t1.somekey = t3.somekey
GROUP BY t3.somekey
)
;
Run Code Online (Sandbox Code Playgroud)
MySQL说这是非法的,因为你不能t1在FROM子句中指定更新的目标表.
小智 8
你可以通过重写你的查询来做到这一点:
UPDATE tableA t1, (
SELECT somekey, SUM(value) value
FROM tableB t3
GROUP BY somekey
) t2
SET speed = t1.value + t2.value
WHERE t1.somekey = t2.somekey;
Run Code Online (Sandbox Code Playgroud)