Daten Aktualisieren by Join

xxMoritzxx

Neuer Benutzer
Beiträge
2
Hallo,

ich möchte 3 Tabell Joinen, wobei dir 3. am Ende nur ein paar wenige Einträge der Vorherigen 2 Überschreiben, bzw. ersetzen soll.

Das Problem ist wie folgt:
Tabelle1: ID, NAME, Alter
Tabelle2, NAME, Wohnort
Tabelle3, Name, Alter, Wohnort

Die Idee ist, das in Tabelle 3, gespeicher wird, ab welchem Alter die Person den Wohnort gewechselt hat.

In Tabelle 1 steht jeder Name mehrmals mit verschiedenen Altern drin. Nun möchte ich sagen, dass Nach dem Tabelle 1 und 2 gemerged wurden, Der Wohnort von "NAME" überall dort durch Wohnort aus Tabelle 3 ersetzt wird wo Alter (Tabelle3) Größer ist als Alter (Tabelle 1).
Es wäre einfach zu lösen, wenn ich einfach einen Table erstellen würde mit Join 1 und 2 und den dannmit 3 updaten würde.
Ich würde as ergebniss aber gerne mit einer Select abfrage erhalten.

Hat hier jemand eine IDEE ?
 
Werbung:
Danke für die hilfe :D
ist auch nur ein beispiel.. es geht einfach darum ob es einen JOIN befehl gibt der mit 2 tabellen joint und dabei in einer reihe bestimmt werte überschreiben kann
 
Werbung:
gut, dann zeig ich auch ein Beispiel...

Code:
test=# select * from t1;
 id | val
----+-----
  1 |  10
  2 |  20
  4 |  40
(3 rows)

test=*# select * from t2;
 id | val
----+-----
  1 |   1
  3 |   3
  4 |   
(3 rows)

test=*# select * from t3;
 id | val
----+-----
  1 |   
  2 |   
  3 |   
  4 |   
(4 rows)

test=*# update t3 set val = coalesce(t1.val +t2.val,0) from t1 left join t2 on t1.id=t2.id where t3.id=t1.id or t3.id=t2.id;
UPDATE 3
test=*# select * from t3;
 id | val
----+-----
  3 |   
  1 |  11
  2 |   0
  4 |   0
(4 rows)
 
Zurück
Oben