Update de 2 tables MySql [RESOLU]

Consultez la formation à Google Analytics de WebRankInfo / Ranking Metrics


milouchouchou
WRInaute discret
WRInaute discret
 
Messages: 85
Inscription: 16 Mar 2003

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: 4107
Inscription: 14 Mai 2003

Message le Dim Sep 12, 2004 3:58


Eservice
WRInaute passionné
WRInaute passionné
 
Messages: 1463
Inscription: 18 Sep 2002

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: 85
Inscription: 16 Mar 2003

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 discret
WRInaute discret
 
Messages: 108
Inscription: 11 Juil 2004

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: 85
Inscription: 16 Mar 2003

Message le Lun Sep 13, 2004 9:33

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


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

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 les experts Google Analytics de Ranking Metrics.

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