Update de 2 tables MySql [RESOLU]

Consultez la formation à Google Analytics de WebRankInfo / Ranking Metrics


milouchouchou
WRInaute discret
WRInaute discret
 
Messages: 65
Inscription: Dim Mar 16, 2003 23:27

Update de 2 tables MySql [RESOLU]

Message le Dim Sep 12, 2004 1:02

Bonsoir tout le monde

J'aimerais mettre à jour le champs d'une table avec celui d'une autre, à savoir mettre la valeur du champs custom_field_4 de la table AD dans le champs usr_5 de la table USER et ceci en rapport avec les champs email de USER ad_username de AD

Je lance la requête suivante :
UPDATE user, ad SET user.usr_5 = ad.custom_field_4 WHERE user.email = ad.ad_username
mas cela me donne l'erreur suivante :
You have an error in your SQL syntax near ' ad SET user.usr_5 = ad.custom_field_4 WHERE user.email LIKE ad.

Quelqu'un a-til une petite idée d'où vient mon erreur ?

D'avance un grand merci et bon dimanche.
Dernière édition par milouchouchou le Lun Sep 13, 2004 9:34, édité 1 fois.


spout
WRInaute accro
WRInaute accro
 
Messages: 1301
Inscription: Mer Mai 14, 2003 11:05

Message le Dim Sep 12, 2004 3:58


Eservice
WRInaute accro
WRInaute accro
 
Messages: 1463
Inscription: Mer Sep 18, 2002 11:28

Re: Update de 2 tables MySql

Message le Dim Sep 12, 2004 17:07

Bonsoir,

milouchouchou a écrit:UPDATE user, ad SET user.usr_5 = ad.custom_field_4 WHERE user.email = ad.ad_username
mas cela me donne l'erreur suivante :
You have an error in your SQL syntax near ' ad SET user.usr_5 = ad.custom_field_4 WHERE user.email LIKE ad.

L'erreur vient du fait qu'on ne peut déclarer qu'une table à mettre à jour. Il faut utiliser une requête imbriquée mais je ne suis pas sûr de cette requête :
Code: Tout sélectionner
UPDATE user SET user.usr_5 = ( SELECT custom_field_4 FROM ad WHERE ad.ad_username = user.email );


milouchouchou
WRInaute discret
WRInaute discret
 
Messages: 65
Inscription: Dim Mar 16, 2003 23:27

Re: Update de 2 tables MySql

Message le Dim Sep 12, 2004 17:52

Eservice a écrit:
L'erreur vient du fait qu'on ne peut déclarer qu'une table à mettre à jour. Il faut utiliser une requête imbriquée mais je ne suis pas sûr de cette requête :
Code: Tout sélectionner
UPDATE user SET user.usr_5 = ( SELECT custom_field_4 FROM ad WHERE ad.ad_username = user.email );


Bonsoir et merci pour ta réponse, mais MySql 3.23 n'accepte pas les select imbriqués.
Je vais donc voir pour y ariver d'une autre façon.

Bonne soirée.

dièse
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 107
Inscription: Dim Juil 11, 2004 17:30

Message le Lun Sep 13, 2004 9:25

oui pas d'autre moyen avec mysql que d'écrire un script pour effectuer ce genre de requête (parcours de table et update des enregistrements à la volée; ce qui peut-être très lourd suivant la taille de tes tables :( ) .


milouchouchou
WRInaute discret
WRInaute discret
 
Messages: 65
Inscription: Dim Mar 16, 2003 23:27

Message le Lun Sep 13, 2004 9:33

Merci, j'ai fait les modifs manuellement.
Bonne journée.


Formation recommandée sur ce thème :

Formation Google Analytics : en 2 jours, apprenez comment exploiter l'essentiel des possibilités de l'outil de mesure d'audience de Google. Formation animée par Julien Coquet, expert certifié officiellement par Google Analytics.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités