Oracle: aktualisieren Sie die Spalte mit Werten aus einer anderen Tabelle

Ich habe eine neue Spalte zu einer bestehenden Tabelle. Ich möchte füllen Sie es mit einem Wert, den ich abrufen, aus einer anderen Tabelle.

Tabelle: EXPORT

Name | email | employeeid | userid

Tabelle: USER

id |  name  | email  | idnumber

Ist die neue Spalte EXPORT.userid, das will ich gleich aus, um USER.id. Bitte beachten Sie, dass id und idnumber sind NICHT die gleichen - idnumber speichert die employeeid während id ist ein auto-Inkrement-PK. USER.idnumber gleich EXPORT.employeeid.

Möchte ich zum Auffüllen EXPORT.userid mit USER.id wenn export.employeeid = user.idnumber.

Wie kann ich das machen mit Oracle-kompatible SQL-code?

Ich habe Folgendes versucht, aber es wirft mich ein Fehler.

UPDATE EXPORT  
   SET userid = ( SELECT id 
                FROM USER 
               WHERE USER.idnumber = EXPORT.employeeid 
                 and USER.EMAIL = EXPORT.email) 
 WHERE EXISTS( SELECT 1
             FROM USER
            WHERE USER.idnumber = EXPORT.employeeid 
              and USER.EMAIL = EXPORT.email) 

Aber ich bekomme diese Fehlermeldung

[Error] Execution (2: 19): ORA-01427: single-row subquery returns more than one row
Sie könnten versuchen, und suchen Sie die Fehler z.B. stackoverflow.com/...
Sie sicher, dass idnumber ist der Primärschlüssel der Tabelle user ,bitte überprüfen Sie es noch einmal

InformationsquelleAutor icefresh | 2013-07-19

Schreibe einen Kommentar