Update über mehrere Felder

eagle1985

Mitglied
Hallo zusammen,

ich würde gerne ein Update über diverse Zeilen machen und zwar hatte ich folgendes SQL erstellt:

Code:
UPDATE tabelle t
SET
     t.spalte1 = 5
WHERE
   t.link_key = (
            SELECT DISTINCT
                   at.pkey
           FROM
                   anderetabelle at
           WHERE
                  at.date = sysdate

Das Problem ist nun, dass das Subselect mehrere Treffer hat und nur 1 Result haben dürfte.

Kennt jemand eine möglichkeit wie ich das erledigen kann, ohne dass ich für jedes Update ein eigenes SQL schreiben muss?
 
Ja nach DB geht in etwa auch das folgende Konstrukt:

SQL:
UPDATE 
	tabelle t,
	(	SELECT DISTINCT
        	pkey
        FROM
			anderetabelle at
		WHERE
			at.date = sysdate
	) AS at1
SET
     t.spalte1 = 5
WHERE
   	t.link_key = at1.pkey
 
Zuletzt bearbeitet von einem Moderator:
hallo,

danke für den Typ, nur leider funktioniert dieser nicht :-(

Meldet dann, dass das SET-Statement fehlt...

Falls das hilft, wird auf Oracle ausgeführt
 
Hab die Lösung mitlerweile in den weiten des Internets gefunden

in anstelle des =

Dann sind mehrfachwerte aus dem Subselect erlaubt

Code:
UPDATE 
    tabelle t,
SET
     t.spalte1 = 5
WHERE
    t.link_key IN (
        SELECT
          at.pkey
        FROM
          anderetabelle at
        WHERE
          at.date = sysdate
      )
 
Zurück