updateAll時のアソシエーションを解除
環境はCakePHP1.2 RC3です。
「updateAllで一気に複数レコードのUpdate」
http://d.hatena.ne.jp/cakephper/20081114/1226656901
で書いたように、updateAllを使えば一気に条件にマッチしたレコードをUpdateできます。
ただ、モデルにbelongsToなどのアソシエーションがあった場合、
$this->Model->recursive = -1;
のようにしても、update時のSQLにjoinが入ってしまいます。
update時にアソシエーションを解除する場合は、unbindModelメソッドで解除したいアソシエーションをセットして解除します。例えばbelongsToを解除する場合は、
$this->Model->unbindModel( array( 'belongsTo' => array_keys( $this->Model->belongsTo ) ) );
とすれば解除され、その後updateAllすればjoinは発生しません。