2009-12-20 5 views
0
UPDATE table1 SET announcer = (SELECT memberid 
FROM (table1 
JOIN users ON table2.username = table1.announcer 
) AS a 
WHERE a.username = table1.announcer) 

# 1064 - Vous avez une erreur dans votre syntaxe SQL; consultez le manuel qui correspond à votre version serveur MySQL pour la bonne syntaxe à utiliser près 'un où a.username = table1.announcer)' à la ligne 1Quel est le problème avec mon instruction MySQL?

Répondre

1

Essayez:

UPDATE announcements a 
SET announcer = 
(SELECT memberid 
FROM users u 
WHERE u.username = a.announcer) 
1

vous pouvez également faire la jointure dans la Mise à jour

UPDATE announcements JOIN users 
SET announcements.announcer=users.memberid 
WHERE announcements.username=users.username; 

note: Pour des raisons de safty (jusqu'à ce que vous Les annonceurs sont bien sûr copiés à droite) Je créerais plutôt une nouvelle colonne, disons speakerNew puis

UPDATE announcements JOIN users 
SET announcements.announcerNew=users.memberid 
WHERE announcements.username=users.username; 
Questions connexes