Я пытаюсь сделать такой запрос:
DELETE FROM term_hierarchy AS th
WHERE th.parent = 1015 AND th.tid IN (
SELECT DISTINCT(th1.tid)
FROM term_hierarchy AS th1
INNER JOIN term_hierarchy AS th2 ON (th1.tid = th2.tid AND th2.parent != 1015)
WHERE th1.parent = 1015
);
Как вы, наверное, догадались, я хочу удалить родительское отношение к 1015, если у того же tid есть другие родители. Однако это дает мне синтаксическую ошибку:
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 'AS th
WHERE th.parent = 1015 AND th.tid IN (
SELECT DISTINCT(th1.tid)
FROM ter' at line 1
Я проверил документацию и запустил подзапрос сам по себе, и, похоже, все прошло проверку. Кто-нибудь может понять, что здесь не так?
Обновление : как указано ниже, MySQL не позволяет использовать таблицу, которую вы удаляете, в подзапросе для условия.
DELETE t FROM table t ...