Tôi đang cố gắng thực hiện một truy vấn như sau:
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
);
Như bạn có thể nói, tôi muốn xóa mối quan hệ cha mẹ với 1015 nếu cùng một tid có cha mẹ khác. Tuy nhiên, điều đó khiến tôi gặp lỗi cú pháp:
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
Tôi đã kiểm tra tài liệu và tự chạy truy vấn con, và tất cả dường như đã hoàn tất. Bất cứ ai có thể tìm ra những gì sai ở đây?
Cập nhật : Như đã trả lời bên dưới, MySQL không cho phép sử dụng bảng bạn đang xóa trong một truy vấn con cho điều kiện.
DELETE t FROM table t ...