Malheureusement, vous ne pouvez pas mettre à jour une table jointe à elle-même dans MySQL
.
Vous devrez créer une fonction comme solution de contournement :
DELIMITER $$
CREATE FUNCTION `fn_get_sum`(_id INT) RETURNS int(11)
READS SQL DATA
BEGIN
DECLARE r INT;
SELECT SUM(s_val)
INTO r
FROM table_name
WHERE id = _id;
RETURN r;
END $$
DELIMITER ;
UPDATE table_name
SET par = fn_get_sum(id)