peterklaus
Goto Top

mysql update und neue daten in eine andere Tabelle eintragen

hallo,
habe schon viel im netz geschaut und nichts gefunden,

also habe hier zwei tabellen, daten werden in tabelle1 per csv-import eingepflegt
aus tabelle1 sollen immer die werte einer spalte ausgelesen werden und in der zweiten die entsprechende spalte upgedatet werden, das funzt soweit,

allerding möchte ich neue datensätze welche in tabelle2 noch nicht vorhanden sind in eine extra tabelle einfügen, um sie dann manuell einzuplegen bzw. selbst einen überblick darüber zu erhalten, was neu ist

also vom prinzip habe ich mir das so gedacht

wenn tabelle1.spalte4 = tabelle2.spalte3 //das sind die daten nach den sich gerichtet wird
{
dann ("UPDATE tabelle2 SET tabelle2.spalte2 = tabelle1.spalte3 WHERE tabelle1.spalte4 = tabelle2.spalte3");
}
sonst ("INSERT INTO tabelle3 (spalte1, spalte2, spalte3,spalte4) value('".$data."',
'".$data[1]."', '".$data[2]."', '".$data[3]."')";
}

ich komm da jetzt leider nicht weiter, ich weiß nicht was ich statt "wenn", "dann" und "sonst" setzen muß
bin noch ein newbie

oder ich bin komplett falsch face-smile
bin für jede hilfe dankbar, mfg

Content-ID: 98816

Url: https://administrator.de/contentid/98816

Ausgedruckt am: 26.11.2024 um 06:11 Uhr

Biber
Biber 08.10.2008 um 23:42:39 Uhr
Goto Top
Moin cooperraser,

ich verstehe offen gestanden die SONST-Logik nicht.
Erwartet hätte ich dort, dass Du auch die neuen Datensätze für Tabelle3 aus der Tabelle1 holst.

Alle Sätze der Import-Tabelle1 sind
  • entweder vorhanden in Tabelle2->dann dort updaten
  • oder NICHT vorhanden in Tabelle2 ->dann in Tabelle3 INSERTen

-> Also zwei Statements mit jeweils Update... WHERE/Insert ...Where ... -->also ResultSets
aber nix mit Einzelsatz-INSERT ..values ...

Zusatzfrage:
und wenn die DS in Tabelle3 schon vorhanden sind? Oder gibt es da keinen PK?

Grüße
Biber
PeterKlaus
PeterKlaus 09.10.2008 um 10:48:39 Uhr
Goto Top
zu der \"sonst\" logik, ich hab doch nicht die Ahnung, newbie

allerding das-->
Alle Sätze der Import-Tabelle1 sind
entweder vorhanden in Tabelle2->dann dort updaten
oder NICHT vorhanden in Tabelle2 ->dann in Tabelle3 INSERTen
--habe ich verstanden, es hapert mir jetzt an der umsetzung bzw. mir fehlt die befehlsfolge oder so,
muss ich das mit einer schleife machen ???? ick weiß es nicht

also nochmal nur zur abfrage

Datensatz ist vorhanden:
UPDATE tabelle1, tabelle2 SET tabelle2.spalte2 = tabelle1.spalte3 WHERE tabelle1.spalte4 = tabelle2.spalte3

Datensatz ist nicht vorhanden:
UPDATE tabelle1, tabelle3 SET tabelle3.spalte2 = tabelle1.spalte3 WHERE tabelle1.spalte4 != tabelle2.spalte3

oder so?!:
INSERT INTO tabelle3 SET ... ON DUPLICATE KEY UPDATE tabelle1, tabelle3 SET tabelle3.spalte2 = tabelle1.spalte3 WHERE tabelle1.spalte4 != tabelle2.spalte3;

danke schon mal