Update von Werten in einer Tabelle mit Werten aus einer anderen Tabelle

Hallo,

Ich habe heute eine Frage bzgl. eines Update. Ich habe zwei Tabellen und möchte die erste Tabelle mit Werten aus der zweiten Tabelle updaten. Leider bekomme ich das nicht hin und hoffe, dass mir eventuell jemand unter die Arme greifen kann.

Ich habe folgende zwei Tabellen:
personalattribute:
id_personalbestand | verfuegbare_stunden | studienjahr | id_organisationseinheit

mitarbeiter_stunden:
id_personalbestand | verfuegbare_stunden | studienjahr | id_organisationseinheit

Ich habe jetzt nur die identischen Spalten der beiden Tabellen aufgeschrieben. Ich möchte jetzt in der Tabelle personalattribute die verfuegbaren Stunden mit den Werten der verfuegbaren_stunden aus der Tabelle mitarbeiter_stunden füllen. Und das immer dort wo entsprechend id_personalbestand, studienjahr und id_organisationseinheit gleich sind. Beispielsweise möchte ich also für id_personalbestand = 1 und studienjahr = 2019 und id_organisationseinheit = 2 die Werte in der mitarbeiter stunden tabelle suchen und dann beim den korrespondierenden Werten in Tabelle personalattribute bei verfuegbare_stunden eintragen.

Hat vielleicht jemand eine Idee wie ich das machen kann? Könnte mir bitte jemand helfen? Für jede Hilfe bedanke ich mich recht herzlich im Voraus.

Mit freundlichem Gruss
Hanno

test=# create table bla(id int, name text);
CREATE TABLE
test=*# create table blubb(id int, name text);
CREATE TABLE
test=*# insert into bla (id, name) select s, 'name ' || s::text from generate_series(1,5) s;
INSERT 0 5
test=*# insert into blubb (id) select s from generate_series(1,5) s;
INSERT 0 5
test=*# update blubb set name = bla.name from bla where blubb.id=bla.id;
UPDATE 5
test=*# select * from bla;
 id |  name  
----+--------
  1 | name 1
  2 | name 2
  3 | name 3
  4 | name 4
  5 | name 5
(5 rows)

test=*# select * from blubb ;
 id |  name  
----+--------
  1 | name 1
  2 | name 2
  3 | name 3
  4 | name 4
  5 | name 5
(5 rows)

test=*#

super,

Vielen Dank für die sehr schnelle Antwort. Anscheinend hab ich da viel zu kompliziert gedacht. :slight_smile:

LG
Hanno