Почему update join ругается на limit, select join — нет?
Заметил, что при select с join таблиц по limit всё работает, но в update с join таблиц по limit ошибка: SQLSTATE[HY000]: General error: 1221 Incorrect usage of UPDATE and LIMIT
Кто-то может пояснит - почему, ведь при апдейте одной таблицы по limit всё работает.
"For the multiple-table syntax, UPDATE updates rows in each table named in table_references that satisfy the conditions. In this case, ORDER BY and LIMIT cannot be used." - это конкретно ответ на твой вопрос.
Если надо кровь из носа сделать limit , то запрос должен выглядеть примерно так:
UPDATE table1 t JOIN
(
SELECT p.value1, p.value2
FROM table1 p JOIN table2 m
ON p.id= m.id
ORDER BY p.id
LIMIT 100
) s
ON t.id = s.id
SET t.value = s.value;