Update de 2 tables MySql [RESOLU]

WRInaute discret
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.
 
WRInaute passionné
Re: Update de 2 tables MySql

Bonsoir,

milouchouchou a dit:
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:
UPDATE user SET user.usr_5 = ( SELECT custom_field_4 FROM ad WHERE ad.ad_username = user.email );
 
WRInaute discret
Re: Update de 2 tables MySql

Eservice a dit:
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:
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.
 
WRInaute discret
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 :( ) .
 
Discussions similaires
Haut