Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Die Tabelle wird zweimal angegeben, sowohl als Ziel für „UPDATE“ als auch als separate Quelle für Daten in mysql

Dies ist eine typische MySQL-Sache und kann normalerweise umgangen werden, indem aus der abgeleiteten Tabelle ausgewählt wird, also anstelle von

FROM manager AS m2

verwenden

FROM (select * from manager) AS m2

Die vollständige Anweisung:

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'
  )
);