update tableA
set tableA.col3 = col2
from (select tableA.col1, tableB.col2 from
tableA inner join tableB on tableA.col1=tableB.col4 and
tableA.col3!=tableB.col2 limit 10)
where tableA.col1 = col1;
У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с 'from (select...
Что не так с вышеуказанным обновлением, хотя ниже команда select отлично работает
select tableA.col1, tableB.col2
from tableA
inner join tableB on tableA.col1=tableB.col4
and tableA.col3!=tableB.col2 limit 10
Попробуй это:
UPDATE tableA
INNER JOIN tableB
ON tableA.col1=tableB.col4
AND
tableA.col3!=tableB.col2
SET tableA.col3 = tableB.col2;
ИЛИ Использование запроса SELECT
Поскольку я не понимаю, как вы хотите обновить tableA.
UPDATE tableA
INNER JOIN (
select tableA.col1, tableB.col2
from tableA
inner join tableB
on tableA.col1=tableB.col4
and tableA.col3!=tableB.col2 limit 10
) AS t
ON tableA.col1 = t.col1
SET tableA.col3 = t.col2
ОБЩИЙ СИНТАКСИС UPDATE
с JOIN
:
UPDATE T1, T2,
[INNER JOIN | LEFT JOIN] T1 ON T1.C1 = T2. C1
SET T1.C2 = T2.C2,
T2.C3 = expr
WHERE condition
у вас есть некоторые пропущенные псевдонимы здесь
update tableA set tableA.col3=col2
Так должно быть
update tableA set tableA.col3= tableB.col2
и здесь
where tableA.col1=col1;
должно быть
where tableA.col1 = tableB.col1;