Операция обновления активной записи Codeigniter с соединением

Это запрос, который я пытаюсь выполнить с помощью активной записи:

UPDATE `Customer_donations` cd join Invoices i on i.cd_id = cd.cd_id set cd.amount = '4', cd.amount_verified = '1' WHERE i.invoice_id = '13'; 

Это моя попытка активной записи:

 $data = array('cd.amount'=>$amount, 'cd.amount_verified'=>'1'); $this->db->join('Invoices i', 'i.cd_id = cd.cd_id') ->where('i.invoice_id', $invoiceId); // update the table with the new data if($this->db->update('Customer_donations cd', $data)) { return true; } 

И это запрос, который на самом деле производится:

 UPDATE `Customer_donations` cd SET `cd`.`amount` = '1', `cd`.`amount_verified` = '1' WHERE `i`.`invoice_id` = '13' 

Почему этот активный оператор записи не применяет мое предложение join?

Как насчет решения ниже? Немного уродливый, но он достиг того, чего вы ожидали в своем вопросе.

 $invoiceId = 13; $amount = 4; $data = array('cd.amount'=>$amount, 'cd.amount_verified'=>'1'); $this->db->where('i.invoice_id', $invoiceId); $this->db->update('Customer_donations cd join Invoices i on i.cd_id = cd.cd_id', $data); 

Даже более чистый, поскольку обновление принимает третий параметр «где»:

 $invoiceId = 13; $amount = 4; $data = array('cd.amount'=>$amount, 'cd.amount_verified'=>'1'); $this->db->update('Customer_donations cd join Invoices i on i.cd_id = cd.cd_id', $data, array('i.invoice_id' => $invoiceId));