Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Administration
Administration Forum d'entraide sur l'administration de MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/11/2007, 08h24   #1
Invité de passage
 
Inscription : novembre 2007
Messages : 1
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 1
Points : 1
Points : 1
Par défaut Ma syntaxe sur un Update un peu pesante !

Bonjour à tous,
voici mon premier message car je sèche malgré de multiples recherches. Je cherche à faire l'update de plusieurs champs en fonction des données sises dans une autre table (c'est la restauration d'un sauvegarde mais les deux tables n'ont pas exactement les mêmes champs).

J'ai tenté la jointure, sans succès, avant d'obtenir succès avec la syntaxe qui suit :
Code :
UPDATE tab1 SET champ1= (SELECT champ1.tab2 WHERE tab2.id=tab1.id AND tab2.champ3='$maVar') WHERE id='$id'
Le problème c'est que je n'update pas qu'un seul champ dans la requète finale et je me crois compliquer inutilement ma requète dès que j'ai plusieurs champs à modifier :
Code :
UPDATE tab1 SET champ1= (SELECT champ1 tab2 WHERE tab2.id=tab1.id AND tab2.champ3='$maVar'), champ2= (SELECT champ2.tab2 WHERE tab2.id=tab1.id AND tab2.champ3='$maVar'), champ3= (SELECT champ3.tab2 WHERE tab2.id=tab1.id AND tab2.champ3='$maVar'), WHERE id='$id'
N'y a t-il pas un moyen plus simple permettant de ne pas multiplier les sous Select ? Une jointure de table ?
D'avance, merci.
La Ventrèche est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2007, 15h36   #2
Membre Expert
 
Avatar de Sivrît
 
Inscription : février 2006
Messages : 953
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : février 2006
Messages : 953
Points : 1 189
Points : 1 189
Code :
1
2
3
4
 
UPDATE tab1 JOIN tab2 ON tab1.id=tab2.id
SET tab1.champ1=tab2.champ1, [...]
WHERE tab1.id='$id'
(http://dev.mysql.com/doc/refman/5.0/fr/update.html)
Sivrît est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h18.


 
 
 
 
Partenaires

Hébergement Web