C'est ton update qui est mal fait, ta clause where est sur ta table2 et pas sur la table1 donc tu veux mettre à jour toutes les lignes de ta table1. Donc pour les lignes de ta T1 pour lesquels tu n'as pas de correspondance en T2, ca revient à faire
UPDATE T1 SET (COL1,COL2,COL3...) = (NULL, NULL, NULL,...)
Il faut que tu testes l'existence de ta pk sur la table2 et que tu t'en sers pour filtrer ta table1 comme cela
1 2 3 4
|
UPDATE T1
SET (COL1,COL2,COL3...) = (SELECT COL1, COL2,COL3 FROM T2 WHERE T1.PK = T2.PK)
WHERE EXISTS (SELECT 1 FROM T2 WHERE T2.PK=T1.PK) |
Partager