Bonjour

J'ai un peu de mal avec une requête delete qui ne devrait pourtant pas poser de problème et je viens solliciter votre aide.

J'ai une table A avec 5 colonnes. Les colonnes 1 à 4 représentent la clé et la 5 une adresse email.
J'ai une copie B de cette table avec la même structure.

La table B est vidée puis mise à jour avec les lignes de A (sauvegarde).
Puis A est mise à jour avec des données nouvelles.

Ce que je cherche à faire, c'est supprimer dans B les lignes qui ne correspondent pas aux lignes de A.
En gros, les lignes qui ont été sauvegardées mais qui n'apparaissent plus dans la mise à jour.

J'ai essayé

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
DELETE FROM B 
  WHERE NOT EXISTS (SELECT * 
                    FROM   A 
                           INNER JOIN B
                                   ON A.C1 = B.C1 AND
                                        A.C2 = B.C2 AND
                                        A.C3 = B.C3 AND
                                        A.C4 = B.C4);
Mais ça ne donne rien.

Vous feriez ça comment ?

Ensuite, je veux mettre à jour les données de A à partir de B toujours en concordance avec les clés.
Mais une chose à la fois

Papy !