我尝试使用Codeigniter中的join更新我的表,但是我收到错误
未知栏' filter.ID_AREA'在' where子句
$this->db->join('filter', 'filter.ID_AREA = area.ID_AREA', 'left');
$this->db->set('ID_VERIFIKASI', '3');
$this->db->where('pelayanan.ID_AREA', $ID_AREA);
$this->db->where('filter.ID_AREA', $ID_AREA);
$this->db->where('filter.ID_RAYON', $ID_RAYON);
$this->db->where('pelayanan.ID_RAYON = filter.F1_RAYON');
$this->db->where('SUBSTR(TGLRUBAH, 3, 6) = filter.F1_BULANTAHUN');
$this->db->where('ID_VERIFIKASI', '2');
$this->db->where('ID_KENDALA is not null');
$this->db->update('pelayanan');
if ($this->db->affected_rows() > 0) {
return true;
}
else {
return false;
}
如何使用Codeigniter中的join更新表?
答案 0 :(得分:0)
我建议您使用查询生成器避免更新加入。使用SQL字符串并进行查询。
根据我在您的代码段中看到的内容,您可能会尝试将其转换为以下内容:
>>> def f(i, n):
... return i * i + 2*n
...
>>> from itertools import repeat
>>> N = 10000
>>>
>>> from pathos.pools import ProcessPool as Pool
>>> pool = Pool()
>>>
>>> ans = pool.map(f, xrange(1000), repeat(20))
>>> ans[:10]
[40, 41, 44, 49, 56, 65, 76, 89, 104, 121]
>>>
>>> # this also works
>>> ans = pool.map(lambda x: f(x, 20), xrange(1000))
>>> ans[:10]
[40, 41, 44, 49, 56, 65, 76, 89, 104, 121]
这不是一个完美的查询,没有引用表" area"以及ID_VERIFIKASI和ID_KENDALA。我没有测试查询,但我很确定它会在JOIN中失败,但你明白了。由您来创建满足您需求的正确sql:)
希望它有所帮助!
答案 1 :(得分:0)
您可以尝试这种方法:
function edit_save($data, $post_id, $user_id)
{
$this->db->set($data)
$this->db->where('table1.user_id', $user_id);
$this->db->where('table1.post_id', $post_id);
$this->db->where('table1.data_id_fk = table2.data_id');
$this->db->update('table1, table2');
}