Ошибка MySQL для обновления - «У вас есть ошибка в вашем синтаксисе SQL» - PullRequest
0 голосов
/ 27 ноября 2011

Я пытаюсь изменить, например, Стив, чтобы Дэвид все мембраны, которые Стив должен изменить на Дэвид, у меня есть запись о боте 10000, и если я выбрал отличное сурба, у меня есть 1251, поэтому я пытаюсь использовать этот оператор SQL, чтобы изменить их все сразу:

UPDATE memba2
SET t1.surba = t2.surba
FROM memba2 t1
INNER JOIN memba t2 ON t1.id = t2.id

Это ошибка, которую я получаю. Пожалуйста, помогите.

#1064 - You have an error in your SQL syntax; check the manual that corresponds
to your MySQL server version for the right syntax to use near
'FROM memba2 t1 INNER JOIN memba t2 ON t1.id=t2.id' at line 1

Ответы [ 2 ]

0 голосов
/ 30 ноября 2011
update memba a join (select  min(id) as id,surba from memba group by surba) b on b.surba = a.surba join memba2 c on c.id = b.id
set a.surba = c.surba
0 голосов
/ 27 ноября 2011

INNER JOIN в вашем выражении UPDATE немного неверно,
Вы можете попробовать: -

UPDATE memba2, memba
SET memba.surba=memba2.surba
WHERE memba.id=memba2.id;

Если вы хотите use INNER JOIN,
правильный синтаксис: -

UPDATE memba2 INNER JOIN memba
SET memba.surba=memba2.surba
WHERE memba.id=memba2.id;

1011 * OR *

UPDATE memba2 INNER JOIN memba ON (memba.id=memba.id)
SET memba.surba=memba2.surba
WHERE memba.id=memba2.id;
...