Я хочу обновить таблицу с помощью подзапроса и всегда получаю сообщение об ошибке.Теперь я сделал очень упрощенную версию (которая не имеет большого смысла, но показывает мою ошибку)
UPDATE a_test SET categoryID = '2956' WHERE id IN (
(
SELECT id from a_test
)
)
Это заканчивается этой ошибкой:
#1093 - Table 's_articles_categories' is specified twice, both as a target for 'UPDATE' and as a separate source for data
Почему я получаю эту ошибку?Когда я использую псевдонимы для таблицы a_test, я получаю ту же ошибку.
Это полный запрос, который я хочу использовать с той же ошибкой:
UPDATE s_articles_categories SET categoryID = '2956' WHERE id IN
(
SELECT s_articles_categories.id FROM `s_articles`
LEFT JOIN s_articles_categories ON s_articles.id = s_articles_categories.articleID
WHERE s_articles_categories.categoryID NOT IN (
SELECT id FROM s_categories
WHERE s_categories.id NOT IN (SELECT parent FROM s_categories WHERE parent IS NOT null GROUP BY parent)
)
)