MySQL update left join

pauline1

Benutzer
Beiträge
14
Hallo

ich kämpfe seit paar Tage mit update von meine Tabelle, und weiss ich es nicht, wo das Problem liegt. Kann sich jemand das angucken, bitte:


ich habe eine Tabelle:

tabname
name strasse plz

müller abc
mayer kllll
schneider tram
müller abc
müller abc

tab plz
name plz

müller 06
mayer 01
schneider 02


Ziel: die plz von tab plz in tab name eintragen, was an sich nicht so schwer sein soll.
Ich habe folgendes gemacht:

update tabname a
left join tabplz b
on a.name=b.name
set a.plz=b.plz

wenn ich die abfrage auführe bekomme ich:
name strasse plz
müller abc (null)
mayer kllll (null)
schneider tram (null)
müller abc (null)
müller abc (null)

sollte ich so was bekommen, bzw. war mein Ziel:

name strasse plz
müller abc 06
mayer kllll 01
schneider tram 02
müller abc 06
müller abc 06

wo liegt das Fehler????

Danke im Voraus!!!

Pauline
 
Werbung:

akretschmer

Datenbank-Guru
Beiträge
9.423
Hallo

ich kämpfe seit paar Tage mit update von meine Tabelle, und weiss ich es nicht, wo das Problem liegt. Kann sich jemand das angucken, bitte:

Ich habe folgendes gemacht:

update tabname a
left join tabplz b
on a.name=b.name
set a.plz=b.plz

wenn ich die abfrage auführe bekomme ich:

Ich bekomme da einen Syntaxfehler. Keinen bekomme ich hier:

Code:
test=*# select * from name ;
   name    | strasse | plz
-----------+---------+-----
 schneider | xxx     |
 schuster  | yyy     |
(2 rows)

test=*# select * from plz;
   name    | plz
-----------+------
 schneider | 4711
 schuster  | 0815
(2 rows)

test=*# update name set plz=plz.plz from plz where name.name=plz.name;
UPDATE 2
test=*# select * from name;
   name    | strasse | plz
-----------+---------+------
 schneider | xxx     | 4711
 schuster  | yyy     | 0815
(2 rows)

Andreas
 
Werbung:
Oben