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 JOINcomparado 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.