Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
981 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  synchronisation de table

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

synchronisation de table

n°1970828
golumest
Posté le 03-03-2010 à 11:59:53  profilanswer
 

bonjour,
 
je voulais savoir si il existait une methode alternative à mon problème (je programme avec php/mysql):
 
j'ai 3 tables :
 
- une sauvegarde qui contient tous les identifiants valides à un instant t (environ 40 000 entrées)
- une table HOT qui contient le détail des éléments HOT avec leur identifiant
- une table FMA qui contient le détail des éléments FMA avec leur identifiant
 
la table sauvegarde est actualisée toutes les semaines et j'aimerai effacer les identifiants de HOT et FMA qui ne se trouve plus dans sauvegarde.
 
j'ai 2 solutions mais qui ne me paraissent pas élégantes :
 
la 1ere :
recupérer tous les id de sauvegarde dans un tableau puis boucler sur la table HOT et FMA (je rappelle il y'a 40 000entrées dans sauvegarde)
si l'id n'est pas ds le tableau alors effacer l'enregistrement.
 
la 2eme :
pour chaque élément de la table de HOT et FMA je regarde si l'id existe dans sauvegarde si il n'existe pas je delete l'enregistrement dans la table concernée.
 
y'a t il une instruction en sql qui me permette de tout faire en une fois?
sinon, laquelle des 2 méthodes est la plus clean? (je vote pour la 2eme, mais ça en fait des requetes...)
 
merci!

mood
Publicité
Posté le 03-03-2010 à 11:59:53  profilanswer
 

n°1970880
aideinfo
Posté le 03-03-2010 à 15:41:31  profilanswer
 

SELECT * FROM HOT h LEFT JOIN sauvegarde s ON h.id = s.id WHERE h.id IS NULL


---------------
http://www.aideinfo.com/  Whois adresses IP/domaines le plus évolué !!  FAQ Free Mobile
n°1970905
golumest
Posté le 03-03-2010 à 16:59:22  profilanswer
 

merci !
mais....ça marchait pas (pas d'erreur mais aucun retour)
 
j'ai essayé :
 SELECT ID FROM FMA h LEFT JOIN sauvegarde s ON h.id = s.IDCLIENT WHERE s.IDCLIENT IS NULL
ça me renvoie bien les ID qui ne sont pas ds sauvegarde.
 
me reste à trouver le pendant de cette requete pour recuperer les id qui ne sont pas dans fma mais dans sauvegarde.
ça donne :
SELECT IDCLIENT FROM sauvegarde s LEFT JOIN FMA h ON s.IDCLIENT=h.id WHERE h.id IS NULL
 
UN GRAND MERCI!


Message édité par golumest le 03-03-2010 à 17:05:54
n°1970964
aideinfo
Posté le 03-03-2010 à 19:40:57  profilanswer
 

Ce qu'on donne doit-être adapté à ton cas, ce qui est normal puisqu'on n'a pas la structure des tables.


---------------
http://www.aideinfo.com/  Whois adresses IP/domaines le plus évolué !!  FAQ Free Mobile
n°1970970
golumest
Posté le 03-03-2010 à 20:15:51  profilanswer
 

non c'est pas au niveau de la structure mais de la clause WHERE ou tu avais utiliser la table "h" au lieu de "s". et je ne comprends d'ailleurs pas que ta requete ne me renvoie pas les id de h qui ne sont pas dans s.
 
mais un grand merci, ça fonctionne au bout du compte et je nepensais pas que c'etait possible de le faire avec une simple requete  sql!


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  synchronisation de table

 

Sujets relatifs
Access Table recette produits[SQL] Copie table avec ajout de champs
Jointure de table produitProbleme requête alter table
Récupérer le dernier ID d'une table MySQLtable SQL Ajouter une colonne au lieu de creer une nouvelle table
récupérer un lien de la bbd et le mettre sur un titre récupéréCreer des champs en fonction d'une autre table
visuel studio 2008/inserer donnees dans une table sans doublon[VBA] Remplir une table Access à partir d'un tableau
Plus de sujets relatifs à : synchronisation de table


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR