Bonjour,

pour mettre à jour une table en faisant référence à cette même table, je suis obligé de passer par une table intermédaire. Est-ce le seul moyen de faire ?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
CREATE TABLE `ephemere_noire` (
 `Courriel` varchar(255) default NULL COMMENT 'Courriel',
 KEY `Courriel` (`Courriel`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Courriel pas bons';
insert into ephemere_noire select f2.Courriel from mail f2 where f2.valide=2;
update mail f1 set f1.valide=2 where f1.Courriel in (select f2.Courriel from ephemere_noire f2) and f1.valide<>2;# adresse non valides
DROP TABLE `ephemere_noire`;
Crée une table éphémère pour l'usage
Sélectionne des adresses de courriel non valides et les insère dans la table éphémère
Modifie dans la table des adresses de courriel les autres adresses, présentes daan la table liste noire et qui ne seraient pas inactives.

toto@toi.fr est considérée comme inactive sur l'interlocuteur de prospect client toi
toto@toi.fr est considérée comme active sur l'interlocuteur de client toi

La requête va rendre inactive l'adresse de courriel du client toi

L'idéal serait de ne faire cela qu'en une seule requête ... mais est-cepossible ?