修改
我尝试了这个查询,但收到了错误:
UPDATE consultation_med
SET consultation_med.given_quantity = 0
FROM
consultation_med
left join consultation on consultation.consultation_id = consultation_med.consultation_id
left join visit on visit.visit_id = consultation.visit_id
WHERE visit.visit_id='191'
AND consultation_med.given_quantity = '361'
错误:
错误代码:1064。您的SQL语法有错误;检查 手册,对应右边的MySQL服务器版本 语法使用附近' FROM consultation_med离开加入咨询 consultation.consultation_id = c'在第3行
结束编辑
当访问状态consultation_med
从{{1}更改时,我需要更新名为given_quantity
的表格并将药物的0
更改为visit_status
} Active
。
请注意,在访问表中,每个Inactive
在下一个表visit_id
中可以包含多个consultation_id
。并且在每个consultation
医生可以提供不同数量的多种药物,因此我们现在对consultation_id
表中的每个consultation_id
多行进行处理。
以下是表格:
因此,让我们采取已经有4次咨询的consultation_med
,并在每次咨询中医生开出1种药物。因此,我们有4行与visit_id=173
表中的visit_id=173
相关联。数据输入有错误,他需要通过将此次访问的状态更改为consultation_med
向管理员发送请求,因此每个给定的药物数量应该回到初始存储,因此我们应该更改{{1每4行到Inactive
。
我在PHP中尝试了以下查询,但显然只需要一行并更新它:
given_quantity
然后我尝试在更新查询中使用左JOIN:
0
查询仍然错误,另外还有一个错误:
错误代码:1175。您正在使用安全更新模式,但您尝试过 更新没有使用KEY列的WHERE的表要禁用安全性 模式,切换首选项中的选项 - > SQL编辑器并重新连接。
答案 0 :(得分:3)
那个错误" 1175"你需要改变编辑或设置 - > SQL编辑器中的首选项为DISABLE SAFE MODE,或者您应该使用phpmyadmin。
答案 1 :(得分:2)
在MySQL中,您应该将update语句编写为:update-join-set-where
这样的事情:
UPDATE consultation_med
LEFT JOIN consultation on consultation.consultation_id = consultation_med.consultation_id
LEFT JOIN visit on visit.visit_id = consultation.visit_id
SET consultation_med.given_quantity = 0
WHERE visit.visit_id='191'
AND consultation_med.given_quantity = '361'
有关详细信息,请访问this链接