簡體   English   中英

使用聯接更新表的多行列

[英]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從改變ActiveInactive

請大家注意,在訪問表,每個visit_id可以有多個consultation_id在接下來的表,該表consultation 而且,在每個consultation_id醫生可以給予不同劑量的多種葯物,因此我們現在在consultation_med表中為每個consultation_id多行。

表格如下:

在此處輸入圖片說明

因此,讓我們以已經具有4個Consultation_id的visit_id=173 ,在每次咨詢中,醫生都開了1種葯物。 因此,我們有4個能去相關行visit_id=173consultation_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM