2009-12-20 4 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 - У вас возникла ошибка в синтаксисе SQL; проверьте руководство, которое соответствует к серверу MySQL версия для корректного синтаксиса использовать вблизи 'а где a.username = table1.announcer)' в строке 1Что случилось с моей операцией MySQL?

ответ

1

Try:

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

Вы можете также сделать JOIN в UPDATE

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

Примечание: по причинам Сафти (пока вы r уверенные дикторы будут скопированы справа) Я вместо этого создаю новую колонку, скажем, дикторНовое затем

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