Autor Beitrag
flyhigh83
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 67

Win 7
C# (VS2010)
BeitragVerfasst: Fr 01.04.11 16:50 
Hallo,

ich 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:

ausblenden SQL-Anweisung
1:
2:
3:
4:
5:
6:
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 NULLAND (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.

Moderiert von user profile iconChristian S.: SQL-Tags hinzugefügt
Trashkid2000
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 561
Erhaltene Danke: 137



BeitragVerfasst: Fr 01.04.11 21:54 
Hallo,
also Du musst auf jeden Fall sicherstellen, dass bei dem Select nur ein Wert rausfällt. Ansonsten geht es nicht.
Selbst wenn praktisch nur ein Wert rauskommt, aber theoretisch doch mehrere, klappt das nicht mehr.
Vielleicht würde Dir bei dem Select ein "TOP 1" helfen.
Aber dann muss wirklich sicher sein, dass bei den (meheren) Resultaten immer die gleichen rausfallen!!

ps: die Benamsung der Tabellen/ Spalten trägt nicht wirklich zum Verstädnis bei. Auch wenn es hier warscheinlich nur zur Anschauung war. Ein Bild sagt da viel mehr.
LG
flyhigh83 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 67

Win 7
C# (VS2010)
BeitragVerfasst: Mo 04.04.11 08:45 
Morgen,

danke das mit dem TOP hat micht mal kurzfristig auf den Richtigen Weg geleitet.

Ich habe da es eine MYSQL Datenbank ist an das ende einfach ein "LIMIT 1" gesetzt.

Theoretisch hätte bei mir auch nicht mehrere Datensätze herauskommen können. Da die Spalte 1 jeweils die ID (Primärschlüssel) der Tabelle ist.
Ich glaube es liget irgendwie an den Joins, dass er da irgendwelche Verbingungen herstellt zu den anderen Tabellen, und somit die ID dann nichtmehr eindeutig ist.

Danke aber mal.