Bonjour,
Je rencontre un problème de mise à jour de champs d'une table à l'aide d'une autre, et je ne sais pas comment le résoudre.
Merci pour votre aide.
Voici la structure des tables :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 CREATE TABLE `t_Table1` ( `Gestionnaire` TEXT NOT NULL, `AdresseIP` VARCHAR(20) NOT NULL, `AdresseIPModifiee` VARCHAR(20) NOT NULL, PRIMARY KEY (`ID`) ) COLLATE='latin1_swedish_ci' ENGINE=MyISAM AUTO_INCREMENT=31793; CREATE TABLE `t_Table2` ( `AdresseIP_UA` VARCHAR(16) NOT NULL, `AdresseIP_DNS` VARCHAR(200) NOT NULL, `Gestionnaire` VARCHAR(20) NOT NULL, `AdresseDebutPlage_traitee` VARCHAR(16) NULL DEFAULT NULL, `AdresseFinPlage_traitee` VARCHAR(16) NULL DEFAULT NULL, INDEX `DIT` (`DIT`) ) COLLATE='latin1_swedish_ci' ENGINE=MyISAM AUTO_INCREMENT=5909;
Voici la requête que j'utilise mais celle-ci ne rend pas la main, elle tourne en boucle :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 UPDATE t_Table1 AS Reseaux, t_Table2 AS GestionSites SET Reseaux.Gestionnaire= GestionSites.Gestionnaire WHERE Reseaux.adresseIPModifiee BETWEEN inet_aton(GestionSites.AdresseDebutPlage_Traitee) AND inet_aton(GestionSites.AdresseFinPlage_Traitee) OR Reseaux.adresseIPModifiee = inet_aton(GestionSites.AdresseDebutPlage_Traitee) OR Reseaux.adresseIPModifiee = inet_aton(GestionSites.AdresseFinPlage_Traitee) ;
Le but est de mettre à jour le champ "Table1.Gestionnaire" à l'aide du champ "Table2.Gestionnaire" à condition que les adresses IP de la table1 soient égales ou dans la plage correspondante dans la table2
Merci donc pour votre aide précieuse.
Là je boucle aussi (pas que la requête ) pour corriger cette requête.
Partager