【问题标题】:Codeigniter Update using Join使用 Join 更新 Codeigniter
【发布时间】:2015-11-05 19:45:18
【问题描述】:

我尝试在 Codeigniter 中使用 join 更新我的表,但出现错误

'where 子句中的未知列'filter.ID_AREA'

$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 更新表?

【问题讨论】:

  • 显示你的数据库表结构

标签: mysql codeigniter join


【解决方案1】:

我建议您避免使用查询生成器进行 UPDATE JOIN。使用 SQL 字符串并改为查询它。

根据我在您的 sn-p 中看到的内容,您可以尝试将其转换为类似的内容:

public function updateMyDB() {
    $sql = 
    "UPDATE pelayanan P " .
    "LEFT JOIN filter F ON F.ID_AREA = area.ID_AREA " .
    "SET ID_VERIFIKASI = 3 "
    "WHERE P.ID_AREA = " . $ID_AREA .
    "AND F.ID_AREA = " . $ID_AREA .
    "AND F.ID_RAYON = " . $ID_RAYON .
    "AND P.ID_RAYON = F.F1_RAYON " .
    "AND SUBSTR(TGLRUBAH, 3, 6) = F.F1_BULANTAHUN " .
    "AND ID_VERIFIKASI = 2 " .
    "AND ID_KENDALA IS NOT NULL";

    $this->db->query($sql);

    return ($this->db->affected_rows() > 0);
}

这不是一个完美的查询,没有引用表“area”以及 ID_VERIFIKASI 和 ID_KENDALA。我没有测试查询,但我很确定它会在 JOIN 中失败,但你明白了。由您根据需要创建正确的 sql :)

希望对你有帮助!

【讨论】:

    【解决方案2】:

    你可以试试这个方法:

    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');
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-30
      • 2012-03-28
      • 1970-01-01
      • 2022-12-20
      • 2011-09-23
      • 2014-07-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多