CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren |
10.10.2008, 19:16:18
|
Anfänger
|
|
Registriert seit: Sep 2008
Alter: 51
Beiträge: 11
|
|
mysql update und neue daten in eine andere Tabelle eintragen
hallo,
habe schon viel im netz geschaut und nichts gefunden, sowie die selbe frage schon mal in einem anderen Forum gestellt, leider bekam ich da nicht die entsprechende antwort um mein problem zu lösen :(
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[0]."',
'".$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
bin für jede hilfe dankbar, mfg
die antwort darauf:
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
meine Antwort darauf:
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
das blieb leider unbeantwortet, ich habe leider nicht, wie schon mal geschrieben, die ahnung, mir fehlt einfach nur die befehlsfolge wie schon mal geschrieben,
wäre echt nett wenn mir da jemand das mal stecken könnte, danke
mfg
|
10.10.2008, 19:56:50
|
|
Administrator
|
|
Registriert seit: Jul 2004
Beiträge: 3.707
|
|
AW: mysql update und neue daten in eine andere Tabelle eintragen
Zitat:
Zitat von cooperraser
...
wäre echt nett wenn mir da jemand das mal stecken könnte, danke
mfg
|
Teile die Bearbeitung in zwei Schritte auf:
1. Schritt - Update der vorhandenen Werte in der Tabelle 2 mit den Werten aus der Tabelle 1
und anschließend
2. Schritt - filtere alle Datensätze aus Tabelle 1 die noch nicht in Tabelle 2 sind und fülle sie in Tabelle 3
Verabschiede Dich gedanklich (in diesem speziellen Fall) von Deiner wenn/dann/sonst Logik. Der Weg geht auch, aber nicht so elegant und einfach wie der oben beschriebene.
__________________
Gruss vt1816
Erwarte nicht, dass sich jemand mehr Mühe mit der Antwort gibt als Du Dir mit der Frage.
. . . . . Feedback wäre wünschenswert
Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (PN, WhatsApp, Skype, Mail, ICQ, etc...) nur per Barzahlung oder Vorauskasse!
Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
|
10.10.2008, 20:57:55
|
Anfänger
|
|
Registriert seit: Sep 2008
Alter: 51
Beiträge: 11
|
|
AW: mysql update und neue daten in eine andere Tabelle eintragen
danke erstmal für die schnelle antwort, alldering verstehe ich nicht was jetzt mit "2. Schritt - filtere alle Datensätze aus Tabelle 1 die noch nicht in Tabelle 2 sind und fülle sie in Tabelle 3" gemeint ist bzw. wie ich das umsetzen soll
ich würde es dann mit INSERT ... SELECT versuchen, also
so ungefähr
INSERT INTO tabelle3 (wert1, wert2, wert3)
SELECT wert2, wert3, wert4
FROM tabelle1 WHERE tabelle1.spalte4 = tabelle2.spalte3
???
|
11.10.2008, 09:12:53
|
Anfänger
|
|
Registriert seit: Sep 2008
Alter: 51
Beiträge: 11
|
|
AW: mysql update und neue daten in eine andere Tabelle eintragen
habs jetzt mal so probiert aber funzt nicht
INSERT INTO tabelle3 (`spalte2`)
SELECT spalte2
FROM tabelle1 INNER JOIN tabelle2
ON `tabelle1`.`spalte2` <> `tabelle2`.`spalte4`
Eingefügte Zeilen: 25791175 (die Abfrage dauerte 57.3548 sek.)
INSERT INTO tabelle3 (`spalte2`)
SELECT spalte2
FROM tabelle1 INNER JOIN tabelle2
WHERE `tabelle1`.`spalte2` <> `tabelle2`.`spalte4`
INSERT INTO tabelle3 (`spalte2`)
SELECT spalte2
FROM tabelle1, tabelle2
WHERE `tabelle1`.`spalte2` <> `tabelle2`.`spalte4`
is genau das selbe,
ich komm nicht drauf woran es liegt, werd erstmal eine kleine runde schlafen und den kopf entspannen, mfg
|
11.10.2008, 11:20:30
|
Anfänger
|
|
Registriert seit: Sep 2008
Alter: 54
Beiträge: 37
|
|
AW: mysql update und neue daten in eine andere Tabelle eintragen
Hallo cooperraser,
vielleicht klappt es damit:
PHP-Code:
INSERT INTO tabelle3
('spalte2')
SELECT
t1.spalte2
FROM
tabelle1 t1
LEFT JOIN
tabelle2 t2
ON
t2.spalte4 = t1.spalte2
WHERE
t2.spalte4 IS NULL;
|
12.10.2008, 03:46:35
|
Anfänger
|
|
Registriert seit: Sep 2008
Alter: 51
Beiträge: 11
|
|
AW: mysql update und neue daten in eine andere Tabelle eintragen
danke, aber funzt leider auch nicht, bin ratlos
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Ansicht |
Linear-Darstellung
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 06:39:20 Uhr.
|