ฉันกำลังพยายามทำแบบสอบถามดังนี้:
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 ...