连接多个表时更新失败

qltillow  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(306)

我尝试使用连接更新两个表,我的codeigniter模型代码如下:

$patient_secondary = array(
    'vpd.patient_id'=>$data['patient_id'],
    'mpd.patient_id'=>$data['patient_id'],
    'vpd.reason'=> 'Death/Expiry',
    'vpd.status_' => 0,
    'mpd.status_' => 0,
);
$this->db->set($patient_secondary);
$this->db->where('`vpd`.`patient_id`', $data['patient_id']);
$this->db->where('`mpd`.`patient_id`', $data['patient_id']);
$this->db->update('volga_primary_patient_details  AS vpd JOIN master_patient_details AS mpd ON vpd.patiend_id = mpd.patient_id');

但我得到以下错误:

A Database Error Occurred
Error Number: 1064

You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '.`patiend_id = mpd`.`patient_id` SET `vpd`.`patient_id` = '22', `mpd`.`patient_i' at line 1

UPDATE `volga_primary_patient_details AS vpd JOIN master_patient_details` AS `mpd ON vpd`.`patiend_id = mpd`.`patient_id` SET `vpd`.`patient_id` = '22', `mpd`.`patient_id` = '22', `vpd`.`reason` = 'Death/Expiry', `vpd`.`status_` = 0, `mpd`.`status_` = 0 WHERE `vpd`.`patient_id` = '22' AND `mpd`.`patient_id` = '22'

Line Number: 691
uidvcgyl

uidvcgyl1#

语法错误。。。仔细观察

... ON vpd`.`patiend_id = mpd`.`patient_id` SET ...

vpd前缺少反勾号
患者id后缺少回勾
mpd前缺少反勾号
唉,我不知道codeigniter是如何创建查询的。。我觉得你的代码还可以(这里有倒勾)

相关问题