Update einer Tabelle mit Daten aus einer anderen Tabelle

Hallo,
ich habe folgendes Problem:
Ich habe 2 Tabellen, eine “Kunden” und eine “Ansprechpartner”.
Aus der Tabelle “Kunden” muss ich die Felder PLZ, ORT, STR und HAUSNR in die Tabelle “Ansprechpartner” übertragen.
Beide Tabellen haben als gemeinsames Merkmal eine “Debitornummer” und eine “Mandanten-ID”, welche aber nur zusammengesetzt eindeutig sind.

Kann mir jemand auf die Sprünge helfen wo ich hier ansetzen muss? Ich habe nicht gedacht dass dies so problematisch ist.

vielen Dank und viele Grüße
Goleo

Was genau hast Du denn bisher probiert, was ist passiert?

Der Update-Befehl (wenn Du psql nutzt) hat eine Online-Hilfe:

test=# \h update
Command:     UPDATE
Description: update rows of a table
Syntax:
UPDATE [ ONLY ] table [ [ AS ] alias ]
    SET { column = { expression | DEFAULT } |
          ( column [, ...] ) = ( { expression | DEFAULT } [, ...] ) } [, ...]
    [ FROM from_list ]
    [ WHERE condition | WHERE CURRENT OF cursor_name ]
    [ RETURNING * | output_expression [ [ AS ] output_name ] [, ...] ]

Andreas

Hallo Andreas,
ich habe es mit einem inner join versucht. Dazu habe ich einiges ergoogelt, muss aber auch gestehen, dass ich nicht sehr tief in der sql-Materie stehe und mit Postgres auch erst seit einigen Wochen zu tun habe. Dabei benutze ich pgadminIII und dort den SQL-Query. Einfache Statements sind auch nicht das Problem, aber das hier…
Ich hatte eine Unterabfrage benutzt, aber da darf ich mir nur einen Spaltenwert zurückgeben lassen. Ich bräuchte doch aber noch einen zweiten, auf den ich vergleichen kann. Irgendwie habe ich jetzt keine so rechte Idee mehr. Für Euch, die Ihr sicher jeden Tag mit Postgres arbeitet, ist es wahrscheinlich ein Klacks. Ich scheitere leider daran.

Okay, simples Beispiel:

test=# create table foo1 (a int, b int);
CREATE TABLE
test=*# create table foo2 (a int, b int);
CREATE TABLE
test=*# update foo1 set b = foo2.b from foo2 where foo1.a=foo2.a;
UPDATE 0
test=*#

Andreas

Danke Andreas,
Dein kleines Beispiel hat mich weitergebracht :slight_smile:
So funktionierts.

viele Grüße auch an alle anderen Helfenden
Goleo