0
UPDATE table1 SET announcer = ( SELECT memberid
FROM ( table1
JOIN users ON table2.username = table1.announcer
) AS a
WHERE a.username = table1.announcer )

#1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“a where a.username=table1.announcer)”附近使用正确的语法

4

2 回答 2

1

尝试:

UPDATE announcements a
SET announcer =
(SELECT memberid
FROM users u
WHERE u.username = a.announcer)
于 2009-12-20T05:30:35.720 回答
1

您也可以在 UPDATE 中执行 JOIN

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

注意:出于安全原因(直到您确定的播音员被正确复制)我会创建一个新列,然后说announcerNew

UPDATE announcements JOIN users
SET announcements.announcerNew=users.memberid
WHERE announcements.username=users.username;
于 2009-12-20T05:37:42.663 回答