mysql: UPDATE mit kriterium aus andere Tabelle
mysqlstarter
- datenbank
0 Thomas Luethi0 Guido
0 Mulder0 Guido
Hallo,
ich habe folgendes problem:
tabelle2 ist eine untermenge von tabelle1 - die struktur ist bei beiden gleich.
ich will in einer spalte von tabelle1 alle werte in denjenigen zeilen aendern, die in tabelle2 existieren.
//alle zeilen aus tabelle2 holen
SELECT spalteIn2 FROM tabelle2 WHERE wert!=''
//in tabelle1 alle aendern, die in tabelle2 vorkommen
UPDATE tabelle1 SET spalte=wert WHERE [in etwa: tabelle2.spalteIn2 != '']
wie kann ich das in mysql realisieren???
ich muss das ergebnis des SELECT aus tabelle2 als UPDATE-kriterium in das UPDATE von tabelle1 reinbekommen.
gruss,
guido
Hallo Guido,
tabelle2 ist eine untermenge von tabelle1 - die struktur ist bei beiden gleich.
Mit anderen Worten: Die Tabellen sind weitgehend redundant (d.h. sie
enthalten teilweise die gleichen Daten doppelt)?
Dann ist Dein Datenbank-Design nicht gerade optimal...
ich will in einer spalte von tabelle1 alle werte in denjenigen zeilen aendern, die in tabelle2 existieren.
wie kann ich das in mysql realisieren???
Mit einem entsprechenden "JOIN" Befehl. Siehe:
http://www.mysql.com/doc/de/JOIN.html
Thomas
der gerade keine Lust hat, eine vollstaendige Loesung
auf dem Silbertablett zu liefern ;-)
Hallo Thomas,
enthalten teilweise die gleichen Daten doppelt)?
Yep. Nach dem Abgleich wird die kleinere Tabelle auch geloescht.
Dann ist Dein Datenbank-Design nicht gerade optimal...
im Moment bin ich erst am aufbauen; was ich habe sind ein paar chaotische Exceltabellen - eine komplette Liste und einen Ausschnitt der Liste mit Vermerken in einer Spalte.
Das ist leider mein Material; etwa 4500 Datensaetze.
Werd ich mir anschauen.
der gerade keine Lust hat, eine vollstaendige Loesung
auf dem Silbertablett zu liefern ;-)
is recht.
Gruss,
Guido
ich muss das ergebnis des SELECT aus tabelle2 als UPDATE-kriterium in das UPDATE von tabelle1 reinbekommen.
UPDATE tabelle1 t1, tabelle2 t2
SET t1.spalte = t2.spalte
WHERE t1.id = t2.id
Hallo Mulder,
UPDATE tabelle1 t1, tabelle2 t2
SET t1.spalte = t2.spalte
WHERE t1.id = t2.id
funktionierte leider nicht... :-(
ERROR 1064: You have an error in your SQL syntax near 'verschicktv10.Mailingstatus
SET KundenDB_kopie.Mailingstatus=verschicktv10.Maili' at line 1
???aber welcher???
dennoch danke!
Gruss,
Guido