Reaper
08.03.2007, 10:59
Ich will bei einer bestehenden Tabelle (mit Inhalt) eine leere Spalte (im Bsp. Spalte2) füllen/ updaten. Die Quell- bzw. Zieltabelle sieht folgendermaßen aus:
Zieltabelle:
Spalte1 (PK) Spalte2 Spalte3
----------------------------------------
1 NULL Daten
2 NULL Daten
3 NULL Daten
4 NULL Daten
5 NULL Daten
6 NULL Daten
Quelltabelle (quasi eine Beziehungstabelle):
Spalte1 (PK) Spalte2
--------------------------
1 4711
2 4711
3 0815
4 666
5 666
6 666
Ich möchte, daß in der Zieltabelle (Spalte2) die passenden Werte aus der Quelltabelle stehen, etwa so:
Spalte1 (PK) Spalte2 Spalte3
----------------------------------------
1 4711 Daten
2 4711 Daten
3 0815 Daten
4 666 Daten
5 666 Daten
6 666 Daten
Eigentlich kein Problem, aber ich kriegs nicht hin :\ ! Man muss ja nicht einmal den PK (Spalte1) von Quell- und Zieltabelle vergleichen. Waaah, das ist es ja, was mich so ärgert >:( !
EDIT: Habe es hinbekommen! Für jemanden, der die Lösung wissen will:
UPDATE Zieltabelle
SET Spalte2 =
(SELECT Spalte2
FROM Quelltabelle
WHERE Zieltabelle.Spalte1 = Quelltabelle.Spalte1)
WHERE EXISTS
(SELECT 1
FROM Quelltabelle
WHERE Zieltabelle.Spalte1 = Quelltabelle.Spalte1)
Geht bestimmt auch anders, aber naja ;) .
Zieltabelle:
Spalte1 (PK) Spalte2 Spalte3
----------------------------------------
1 NULL Daten
2 NULL Daten
3 NULL Daten
4 NULL Daten
5 NULL Daten
6 NULL Daten
Quelltabelle (quasi eine Beziehungstabelle):
Spalte1 (PK) Spalte2
--------------------------
1 4711
2 4711
3 0815
4 666
5 666
6 666
Ich möchte, daß in der Zieltabelle (Spalte2) die passenden Werte aus der Quelltabelle stehen, etwa so:
Spalte1 (PK) Spalte2 Spalte3
----------------------------------------
1 4711 Daten
2 4711 Daten
3 0815 Daten
4 666 Daten
5 666 Daten
6 666 Daten
Eigentlich kein Problem, aber ich kriegs nicht hin :\ ! Man muss ja nicht einmal den PK (Spalte1) von Quell- und Zieltabelle vergleichen. Waaah, das ist es ja, was mich so ärgert >:( !
EDIT: Habe es hinbekommen! Für jemanden, der die Lösung wissen will:
UPDATE Zieltabelle
SET Spalte2 =
(SELECT Spalte2
FROM Quelltabelle
WHERE Zieltabelle.Spalte1 = Quelltabelle.Spalte1)
WHERE EXISTS
(SELECT 1
FROM Quelltabelle
WHERE Zieltabelle.Spalte1 = Quelltabelle.Spalte1)
Geht bestimmt auch anders, aber naja ;) .