繁体   English   中英

使用代码点火器加入的 Sql 更新

[英]Sql Update with join in codeigniter

在 codeigniter 中遇到了一个问题。 我有以下查询:

UPDATE
    tbl_print_title 
INNER JOIN tbl_jp_lookups ON tbl_print_title.title_id = tbl_jp_lookups.id
SET
    tbl_print_title.is_delete = 1,
    tbl_jp_lookups.is_delete = 1
WHERE
    tbl_print_title.id = 5

我想在 codeigniter 的查询构建器结构中编写它。 它在 phpmyadmin 中运行良好。 我尝试了以下但它不起作用。 请提供建议。

$this->db->set('prt.is_delete', '!is_delete');
$this->db->set('lk.is_delete', '!is_delete'); 
$this->db->where('prt.id',$id);    
$this->db->update(TBL_PRINT_TITLE." as prt");  
$this->db->join(TBL_JP_LOOKUPS." as lk", 'prt.title_id=lk.id'); 
if($this->db->affected_rows() > 0) { 
return 1;
} else { 
return 0; 
}

如下更新您的代码,首先加入表,然后更新

$this->db->set('prt.is_delete', '!is_delete');
$this->db->set('lk.is_delete', '!is_delete');     
//$this->db->join(TBL_JP_LOOKUPS." as lk", 'prt.title_id=lk.id'); 
$this->db->where('prt.id',$id);    
$this->db->update(TBL_PRINT_TITLE." as prt INNER JOIN ". TBL_JP_LOOKUPS." as lk ON prt.title_id = lk.id");  

if($this->db->affected_rows() > 0) { 
return 1;
} else { 
return 0; 
}

使用以下命令。 这将首先定义别名,然后执行操作

$this->db->update(TBL_PRINT_TITLE." as prt");  
$this->db->join(TBL_JP_LOOKUPS." as lk", 'prt.title_id=lk.id'); 
$this->db->set('prt.is_delete', '!is_delete');
$this->db->set('lk.is_delete', '!is_delete'); 
$this->db->where('prt.id',$id);    
if($this->db->affected_rows() > 0) { 
return 1;
} else { 
return 0; 
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM