PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : SQL - Update über zwei Tabellen


Gast
2011-07-09, 16:01:05
Hallo,

ich möchte einen Tabellenabgleich durchführen über eine SQL Anweisung.

Dabei sollen die Spalte titel in tab1 durch die Werte der Spalte titel aus tab2 ersetzt werden. Als Vergleich sollen die Spalten titel fungieren. Das ganze wurde zwar angenommen durch die Datenbank aber es ist halt nix passiert :) Ich hoffte aber, das die Datenbank in tab2.name so lange sucht bis es eine Übereinstimmung gibt um den titel Wert zu übernehmen.

update tab1, tab2
set tab1.title = tab2.title
where tab1.name = tab2.name

Grüße

Berni
2011-07-09, 17:04:42
Und wenn dus so machst?
update tab1 set title = (Select title from tab2 where name = tab1.name)
Bei größeren Datenmengen (wenns mal in die Millionen geht) muss man natürlich überlegen ob man das über den Subselect haben will. Da bieten sich dann andere Lösungen an möglicherweise. Des Weiteren sollte natürlich ein Index auf "name" liegen.

Matrix316
2011-07-09, 17:36:47
oder über join

update tab1 set title = a.title from tab2 a inner join tab1 b on a.name = b.name


Wobei das glaube ich bei mysql net geht. ;)

http://christian.bloggingon.net/archive/2006/09/17/update-mit-inner-join.aspx