Что не так с моим заявлением MySQL? - PullRequest
0 голосов
/ 20 декабря 2009
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 версия для правильного использования синтаксиса рядом где a.username = table1.announcer)» в строке 1

Ответы [ 2 ]

1 голос
/ 20 декабря 2009

Вы также можете присоединиться в ОБНОВЛЕНИИ

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

Примечание. По соображениям безопасности (до тех пор, пока ваши уверенные дикторы не будут скопированы правильно), я бы вместо этого создал новый столбец, скажем, anncerNew, затем

UPDATE announcements JOIN users
SET announcements.announcerNew=users.memberid
WHERE announcements.username=users.username;
1 голос
/ 20 декабря 2009

Попробуйте:

UPDATE announcements a
SET announcer =
(SELECT memberid
FROM users u
WHERE u.username = a.announcer)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...