UPDATE t1
LEFT JOIN
t2
ON t2.id = t1.id
SET t1.col1 = newvalue
WHERE t2.id IS NULL
Tenga en cuenta que para un SELECT
sería más eficiente usar NOT IN
/ NOT EXISTS
sintaxis:
SELECT t1.*
FROM t1
WHERE t1.id NOT IN
(
SELECT id
FROM t2
)
Consulte el artículo de mi blog para obtener detalles sobre el rendimiento:
- Encontrar pedidos incompletos
:rendimiento de
LEFT JOIN
comparado conNOT IN
Desafortunadamente, MySQL
no permite usar la tabla de destino en una subconsulta en un UPDATE
declaración, es por eso que deberá apegarse a LEFT JOIN
menos eficiente sintaxis.