Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MySQL - consulta UPDATE baseada em consulta SELECT


Você pode realmente fazer isso de duas maneiras:

Sintaxe de junção de atualização do MySQL:
UPDATE tableA a
INNER JOIN tableB b ON a.name_a = b.name_b
SET validation_check = if(start_dts > end_dts, 'VALID', '')
-- where clause can go here

Sintaxe ANSI SQL:
UPDATE tableA SET validation_check = 
    (SELECT if(start_DTS > end_DTS, 'VALID', '') AS validation_check
        FROM tableA
        INNER JOIN tableB ON name_A = name_B
        WHERE id_A = tableA.id_A)

Escolha o que lhe parecer mais natural.