mySQL 删除在不同列上有两个条件的查询

mySQL delete query with two condition on separate columns

我正在使用此查询 select 来自 wp_postmeta table

的特定行
SELECT *
FROM wp_postmeta pm
LEFT JOIN wp_posts wp ON wp.ID = pm.meta_value
WHERE (wp.ID IS NULL) AND (pm.meta_key = '_wpcf_belongs_books_id')

它工作正常但是当我尝试使用 DELETE

DELETE
FROM wp_postmeta pm
LEFT JOIN fddb_wp_posts wp ON wp.ID = pm.meta_value
WHERE (wp.ID IS NULL) AND (pm.meta_key = '_wpcf_belongs_books_id')

它returns一个错误说

#1064 - 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 'pm LEFT JOIN fddb_wp_posts wp ON wp.ID = pm.meta_value WHERE (wp.ID IS NULL) AND' at line 2

关于如何让它发挥作用有什么建议吗?

如果您有一个包含多个 table 的删除语句,您需要命名要从中删除的 table。在 delete 关键字

之后立即执行此操作
DELETE pm
FROM fddb_wp_postmeta pm ...
DELETE
FROM fddb_wp_postmeta  where 
meta_value not in  (select wp.ID from fddb_wp_posts wp)
  and meta_key = '_wpcf_belongs_books_id'