Можно ли обновить таблицу JOINed с помощью активной записи Codeigniter? - PullRequest
4 голосов
/ 13 февраля 2012

Вот что я хотел бы сделать

function edit_save($data, $post_id, $user_id)
{
    $this->db->where('post.user_id', $user_id);
    $this->db->where('post.post_id', $post_id);
    $this->db->join('data', 'post.data_id_fk = data.data_id', 'left');
    $this->db->update('post', $data);
}

Таблица 'post' должна быть соединена слева с 'data'.

Когда я запускаю вышеупомянутое, я получаюошибка SQL, сообщающая, что одно из полей таблицы 'data' не найдено.

Есть предложения?

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ

Это сгенерированный запрос SQL

UPDATE `post` 
SET `data_value` = '111', `data_date` = '2012-02-13', `post_text` = '111' 
WHERE `post_stream_id` =  '5' 
    AND `post_id` =  '18'

Это ошибка

Unknown column 'data_value' in 'field list'

Не отображается оператор JOIN.

1 Ответ

3 голосов
/ 18 февраля 2012

Попробуйте этот запрос активной записи для обновления с объединениями:

function edit_save($data, $post_id, $user_id)
{
    $this->db->set($data)
    $this->db->where('post.user_id', $user_id);
    $this->db->where('post.post_id', $post_id);
    $this->db->where('post.data_id_fk = data.data_id');
    $this->db->update('post, data');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...