Ich schreibe kleines Update für Home-Inventar, die Menge für Produkt mit dem ältesten Ablaufdatum ändert (meine Art, FIFO zu erreichen). Unten ist das Beispiel, das ich auszuführen versuchte, aber ohne Glück.Update-Tabelle, wo Spalte ist MIN
UPDATE stan
SET Ilosc=Ilosc-1
WHERE Date_exp=(SELECT MIN(Date_exp) AS Date_exp FROM stan as sta WHERE ID_Product=1)
Obiges Beispiel endet mit folgenden Fehler:
1093 - Table 'stan' is specified twice, both as a target for 'UPDATE' and as a separate source for data
jemand mich in die richtige Richtung zeigen kann?
schreiben Sie es als (zum Beispiel) eine uncorellated Unterabfrage statt – Strawberry
ich undestand nicht, was meinst du. ich habe ‚WHERE‘ ohne ‚SELECT‘ schreiben? – bgolemba
erstellen eine temporäre Tabelle tmp [select min (date_exp) als date_exp FRO M stan WHERE ID_Product = 1) sta], dann UPDATE stan a SET a.Ilosc = a.Ilosc-1 WHERE a.Date_exp in (Wählen Sie date_exp aus tmp). Versuchen Sie es, es sollte gut funktionieren. –