sql >> Base de Datos >  >> RDS >> Mysql

La tabla se especifica dos veces, como destino para 'ACTUALIZAR' y como fuente separada para datos en mysql

Esto es algo típico de MySQL y generalmente se puede eludir seleccionando de la tabla derivada, es decir, en lugar de

FROM manager AS m2

usar

FROM (select * from manager) AS m2

La declaración completa:

UPDATE manager
SET status = 'Y'
WHERE branch_id IN
(
  select branch_id
  FROM (select * from manager) AS m2
  WHERE (branch_id, year) IN
  (
    SELECT branch_id, year
    FROM branch_master
    WHERE type = 'finance'
  )
);