各レコードにフィールドがあるニュース テーブルがあります。
news_id (INT), parent_id (INT) , subitems (INT)
各レコードにその直接の子の合計 (カウント) を持たせたい
例(結果をそのようにしたい)
news_id: 1, parent_id: 0, subitems: 2
news_id: 2, parent_id: 1 , subitems: 0
news_id: 3, parent_id: 1 , subitems: 0
このようなことを正しく行うにはどうすればよいですか:
UPDATE news n
SET subitems = (SELECT COUNT(*) FROM `news` AS `n2`
WHERE `n2`.`parent_id` = `n`.`news_id`)
上記のように、次のエラーが発生します。
#1093 - You can't specify target table 'n' for update in FROM clause