WordPressでカスタム投稿の投稿をまとめて削除しようと思って、postsテーブル のデータ削除は簡単なんだけれど、
postmetaテーブルのデータ削除がああでもない、こーでもないと格闘。
初めは、こうしたけれどダメ。
DELETE FROM tn_postmeta pm LEFT JOIN tn_posts p ON p.ID=pm.post_id WHERE p.post_type='postType';
どうやら、DELETE と FROM の間にテーブル名を入れないといけないらしい、ということで…
こうしたけれど、これもだめ。
DELETE tn_postmeta FROM tn_postmeta pm LEFT JOIN tn_posts p ON p.ID=pm.post_id WHERE p.post_type='postType';
どうやら、DELETE と FROM の間のテーブル名には、エイリアス名を入れないといけないということで、
エイリアス名に変えて、これでOKでした。
DELETE pm FROM tn_postmeta pm LEFT JOIN tn_posts p ON p.ID=pm.post_id WHERE p.post_type='postType';
ちなみに、エイリアス名のAS句は省略できるということなので、
DELETE pm FROM tn_postmeta AS pm LEFT JOIN tn_posts AS p ON p.ID=pm.post_id WHERE p.post_type='postType';
と同じ意味。のはず。