简体   繁体   English

如何使用内部联接更新Codeigniter中的表?

[英]How update a table in codeigniter with inner join?

I want to convert this query Mysql in Query Builder Codeigniter 我想在查询生成器Codeigniter中转换此查询Mysql

The query is works in mysql but don't works in codeigniter 该查询适用于mysql,但不适用于codeigniter

Mysql MySQL的

UPDATE tbl_person p
INNER JOIN tbl_family_victim f  ON  p.id_person = f.id_person
SET p.active = 0
WHERE f.id_prisoners = 32;

Codeigniter 点火枪

public function delete_all($id_pris){
   $this->db->join('tbl_family f','p.id_person = f.id_person');
   $this->db->set('p.active', '0');
   $this->db->where('f.id_prisoners', $id_pris);
   $data_result = $this->db->update('tbl_person p');
   return  $data_result;
}

Try this, 尝试这个,

public function delete_all($id_pris){
   $this->db->set('p.active', '0');
   $this->db->where('f.id_prisoners', $id_pris);
   $data_result = $this->db->update('tbl_person p JOIN tbl_family f ON p.id_person = f.id_person');
   return  $data_result;
}

You have minute error in your script, you missed alias of slave table 您的脚本中有分钟错误,您错过了从属表的别名

VERSION 1 版本1

public function delete_all($id_pris){
   $this->db->join('tbl_family f','p.id_person = f.id_person',"inner"); // you missed `f` here
   $this->db->set('p.active', '0');
   $this->db->where('f.id_prisoners', $id_pris);
   $data_result = $this->db->update('tbl_person p');
   return  $data_result;
}

This should work fine. 这应该工作正常。

VERSION 2 版本2

$this->db->set('p.active', '0');
$this->db->where('f.id_prisoners', $id_pris);
$this->db->where('p.id_person = f.id_person')
$data_result = $this->db->update('tbl_family as f, tbl_person as p');
return $data_result;

VERSION 3 版本3

$sql = "
UPDATE tbl_person p
INNER JOIN tbl_family_victim f  ON  p.id_person = f.id_person
SET p.active = 0
WHERE f.id_prisoners = $id_pris";
$this->db->query($sql);

VERSION 4 版本4

$this->db->set('p.active', '0');
$this->db->where('f.id_prisoners', $id_pris);
$data_result = $this->db->update('tbl_family as f JOIN  tbl_person as p ON p.id_person = f.id_person');
return $data_result;

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

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