[英]Update a column of multiple rows of a table using joins
編輯
我嘗試了此查詢,但出現錯誤:
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。 檢查與您的MySQL服務器版本相對應的手冊以獲取正確的語法,以在第3行的'FROM consulting_med left join consulting on Consultation.consultation_id = c'附近使用
結束編輯
我需要更新一個名為表consultation_med
和改變given_quantity
葯物到0
時訪問的狀態visit_status
從改變Active
到Inactive
。
請大家注意,在訪問表,每個visit_id
可以有多個consultation_id
在接下來的表,該表consultation
。 而且,在每個consultation_id
醫生可以給予不同劑量的多種葯物,因此我們現在在consultation_med
表中為每個consultation_id
多行。
表格如下:
因此,讓我們以已經具有4個Consultation_id的visit_id=173
,在每次咨詢中,醫生都開了1種葯物。 因此,我們有4個能去相關行visit_id=173
在consultation_med
表。 數據輸入有錯誤,他需要通過將此訪問的狀態更改為Inactive
來向管理員發送請求,因此,給定的每種葯物數量應返回初始存儲,因此我們應將每4行的given_quantity
更改為0
。
我在PHP中嘗試了以下查詢,但顯然它只占用一行並更新了它:
$med_pharmacy_id = $res['med_pharmacy_id'];
$consultation_med_id = $res['consultation_med_id'];
$update = "UPDATE consultation_med
SET given_quantity = 0
WHERE med_pharmacy_id = :mid
AND clinic_id = :cid
AND consultation_med_id = :cmid";
然后我嘗試在更新查詢中使用左JOIN:
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='173'
AND consultation_med.given_quantity = '361'
查詢還是錯誤的,外加一個額外的錯誤是:
錯誤代碼:1175。您正在使用安全更新模式,並且嘗試更新不具有使用KEY列的WHERE的表。要禁用安全模式,請在“首選項”->“ SQL編輯器”中切換選項,然后重新連接。
您需要在SQL編輯器中的編輯或設置->首選項中將錯誤“ 1175”更改為DISABLE SAFE MODE,或者您應該使用phpmyadmin。
在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'
有關更多詳細信息,請訪問此鏈接
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.