Leider habe ich nicht nur einen Wert sondern für jeden Datensatz einen verschiedenen.
tab_a ist eine Tabelle mit Personen, tab_b auch (enthält nur mehr Personen und mehr Felder) und ich will einige Informationen der tabelle tab_b zu der entsprechenden Person in tab_a schreiben.
Gruss
Regine
update tab_a a
set a_feld3 = (SELECT b_beld3 FROM tab_b WHERE b_a_id =
a.a_id)
Funktioniert immer dann, wenn aus dem SELECT genau ein Wert
zurückkommt.
Leider habe ich nicht nur einen Wert sondern für jeden
Datensatz einen verschiedenen.
tab_a ist eine Tabelle mit Personen, tab_b auch (enthält nur
mehr Personen und mehr Felder) und ich will einige
Informationen der tabelle tab_b zu der entsprechenden Person
in tab_a schreiben.
Gruss
Regine
Hallo Regine, aber das macht doch gar nichts. Evtl. kann es sein, wenn tab_b weniger IDs enthält, dass Du die NULL-Werte abfangen musst bzw eine Einschränkung brauchst:
update tab_a a
set a_feld3 = (SELECT b_beld3 FROM tab_b WHERE b_a_id = a.a_id)
where a.a_id in (select b_a_id from tab_b)
Gruß
Peter
update tab_a a
set a_feld3 = (SELECT b_beld3 FROM tab_b WHERE b_a_id =
a.a_id)
Funktioniert immer dann, wenn aus dem SELECT genau ein Wert
zurückkommt.
update (select a.feld3 af3, b.feld3 bf3 from tab_a a, tab_b b where a.a_id = b.b_a_id)
set af3 = bf3;
DU machst damit praktisch ein update auf die Query in der Klammer.
Funktioniert ebenfalls nur, wenn Eindeutigkeit herrscht. Also wenn jedem a.a_id genau ein oder kein b.b_a_id zugeordnet ist.