EDITAktualisieren Sie schließt sich mit
ich diese Abfrage versucht, aber einen Fehler bekam:
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'
der Fehler:
Error Code: 1064. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM consultation_med left join consultation on consultation.consultation_id = c' at line 3
EDIT END
Ich brauche um eine Tabelle mit dem Namen consultation_med
zu aktualisieren und die given_quantity
eines Medikaments in 0
zu ändern, wenn der Status eines Besuchs visit_status
von Active
zu Inactive
geändert wird.
Bitte beachten Sie, dass in der Besuchstabelle jede visit_id
mehrere consultation_id
in der nächsten Tabelle haben kann, die consultation
ist. Und in jedem consultation_id
Ärzte können mehrere Medikamente mit unterschiedlichen Mengen geben, so dass wir jetzt für jede consultation_id
mehrere Zeilen in consultation_med
Tabelle haben.
Hier sind die Tabellen:
wir also den visit_id=173
nehmen, die bereits 4 consultation_id hatte und in jeder Beratung Ärzte 1 Medikamente verschrieben. So haben wir 4 Zeilen zu besuchen, wo visit_id=173
in consultation_med
Tabelle. Die Dateneingabe hatte einen Fehler und er muss eine Anfrage an den Administrator senden, indem er den Status dieses Besuchs in Inactive
ändert, so dass jede gegebene Medikamentenmenge wieder in den ursprünglichen Speicher zurückkehrt, daher sollten wir die given_quantity
von jeder 4 Reihe zu 0
ändern .
Ich habe versucht, in PHP die folgende Abfrage, aber anscheinend ist es nimmt nur eine Zeile und ohne Aktualisierung:
$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";
Dann versuchte ich links innen Update-Abfrage JOIN zu verwenden:
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'
Die Abfrage ist immer noch falsch und zusätzlich ein Fehler, der ist:
Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column To disable safe mode, toggle the option in Preferences -> SQL Editor and reconnect.
ich brauche behalte es, so später Benutzer Laptop kann normal gemacht werden, so muss ich die Abfrage ändern – droidnation
hmmm, sollten Sie auch versuchen, Unterabfrage, das ist gut für Updates, aber etwas schwieriger –
Ich möchte über Unterabfrage – droidnation