1

次のクエリを実行すると:

DELETE FROM wp_postmeta 
    WHERE post_id 
        NOT IN (
            SELECT post_id 
            FROM wp_postmeta a 
            INNER JOIN wp_sl_posts b 
            ON a.post_id = b.id
            )

エラーメッセージが表示されます:

You can't specify target table 'wp_postmeta' for update in FROM clause  

理由はある程度わかっていますが、操作を実行するためにここで必要な構文は本当にわかりません。私はここや他の場所での回答に基づいていくつかの異なる代替案を試しましたが、運はありません。

4

2 に答える 2

2

試す

DELETE wp_postmeta 
FROM wp_postmeta 
left outer JOIN wp_sl_posts b ON a.post_id = b.id
WHERE b.post_id is null
于 2012-04-28T20:17:17.940 に答える
1

これは基本的に同じで、機能するはずです。

DELETE FROM wp_postmeta
WHERE post_id NOT IN (SELECT id FROM wp_sl_posts)
于 2012-04-28T20:36:20.980 に答える