Estou corrigindo alguns dados incorretos e estou procurando uma maneira mais segura de atualizar uma determinada coluna quando o valor não existe mais na tabela relacionada.
Dê uma olhada no exemplo a seguir ( violino aqui ):
-- SET sql_mode = '';
create table if not exists table1
(
id int auto_increment primary key,
table2_id int
);
create table if not exists table2
(
id int auto_increment primary key
);
INSERT INTO table1 VALUES(1, 1), (2, 2), (3, 3), (4, 4), (5, 5);
INSERT INTO table2 VALUES(1), (2);
SELECT * FROM table1;
SELECT * FROM table2;
SELECT * FROM table1 LEFT JOIN table2 ON table1.table2_id = table2.id;
a última consulta acima retornará apenas 2 linhas porque table2
não tem os IDs: 3, 4, 5. Então preciso escrever uma ATUALIZAÇÃO para a tabela1 para definir os IDs: 3, 4, 5 para NULL
.
Posso ter algumas ideias?