Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Oracle Update-Abfrage mit Joins

Ihre Abfrage scheint mir in Ordnung zu sein. Ich habe gerade Tabellenalias hinzugefügt. Ihre Abfrage aktualisiert alle Datensätze in Tabelle1. Welchen Fehler bekommst du...??

Vorschläge,

a) Sofern Sie nicht alle Datensätze aktualisieren möchten, fügen Sie eine where-Klausel in die Abfrage ein, um zu vermeiden, dass alle Datensätze aktualisiert werden...

b) Wenn Sie erhalten (ORA-01427:Einzelzeilen-Unterabfrage gibt mehr als eine Zeile zurück), bedeutet dies, dass der verknüpften Unterabfrage (in Klammern) eine Bedingung fehlt, damit sie nur 1 Zeile pro epcclass_id abruft.

update table1 Pr
set Pr.code = (select t2.class_attr_value 
               from table2 t2 
               where  t2.class_attr_name = 'sample' 
               and t2.epclass_id = Pr.epcclass_id 
              );