1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  2. Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, Oracle, Sql-Server, Postgres, Access uvm
    Information ausblenden

Update mit Select

Dieses Thema im Forum "MySQL" wurde erstellt von fly83, 1 April 2011.

  1. fly83

    fly83 Neuer Benutzer

    Hallo,

    ich bin relativ neu wieder auf dem SQL Gebiet unterwergs, und habe da mal eine Frage. Ich muss Designtechnisch einiges Ändern und muss dafür jetzt viele Daten umziehen und umbauen von der Struktur. Jetzt wollte ich mir eine Updateanweisung basteln aber ich hänge gerade noch an meinem Select, da der mir anscheinend mehrere Werte zurückliefert.

    Code:
    Update Tabelle3 as x
    SET conAnbieter = (SELECT     Tabelle1.Spalte20
    FROM         stellplatz INNER JOIN
                          Tabelle2 ON Tabelle1.Spalte1 = Tabelle2.Spalte2 INNER JOIN
                          Tabelle3_Copy ON Tabelle2.Spalte1 = Tabelle3_Copy.Spalte1
    WHERE     (Tabelle2.Spalte5 IS NULL) AND (x.Spalte1 = Tabelle3_Copy.Spalte1))
    Was mache ich an dem Select falsch. Ich muss ja irgend wie wieder auf den Gerade angefassten Datensatz aus meiner UpdateTabelle verweisen.
     
  2. Charly

    Charly Datenbank-Guru

    Hallo fly83,

    stimmt deine Ergebnismenge wenn Du dein Subselect ohne das Update ausführst?
    Hast Du schon mal versucht, nur zum Testen, das (Tabelle2.Spalte5 IS NULL) aus dem Were des Subselects raus zu nehmen?
    Mit der ISNULL bekommst Du für einige Datensätze wascheinlich kein Ergebnis vom Subselect geliefert.
    Ist Tabelle3.Spalte1 ein Primärschlüssel? Nur wenn Spalte1 eindeutig ist bekommst Du eine einzelne Zeile vom Subselect.

    Gruß Charly

    PS: Bin die nächsten 3 Tage nicht am Internet.
     
  3. fly83

    fly83 Neuer Benutzer

    Hi,

    danke. Ja Spalte 1 ist der Primärschlüssel. Bis jetzt habe ich den Fehler nicht genau lokalisieren können. Ich habe mir geholfen mit "Limit 1". Die Werte haben beim durchschauen gestimmt.
     

Diese Seite empfehlen