Delete - I can't specify target table?

后端 未结 2 751
刺人心
刺人心 2020-12-13 13:09

Why this query doesn\'t work?

DELETE FROM recent_edits 
WHERE trackid NOT IN 
     (SELECT DISTINCT history.trackid 
     FROM history JOIN recent_edits ON h         


        
相关标签:
2条回答
  • 2020-12-13 13:25

    You can't post-process a table which is locked for deletion. using the hack select * from (query) as Nicola states will generate a temporary table instead of direct access.

    Edit - make sure that you give ID to the tables you use since it is nested and will require uniqueID for every table.

    0 讨论(0)
  • 2020-12-13 13:36

    Try in this way

    DELETE FROM recent_edits 
    WHERE trackid NOT IN 
         (select * from (SELECT DISTINCT history.trackid 
         FROM history JOIN recent_edits ON history.trackid=recent_edits.trackid 
         GROUP BY recent_edits.trackid) as t);
    
    0 讨论(0)
提交回复
热议问题