Я намагаюся зробити такий запит:
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, якщо той самий час має інші батьки. Однак це призводить до синтаксичної помилки:
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 ...