Ich habe eine Datenbank mit alten Preisen und möchte nun die neue Preise für 2007 einspielen. In einer zweiten Tabelle steht die Artikelnummer und der neue Preis. Nun habe ich mit folgendem Befehlt die Preise aktualisiert:
So, nun das eigentliche Problem... zuvor habe ich mit folgendem Befehl kontrolliert, wie viele Datensätze er eigentlich hätte updaten müssen...
heraus kam 1418, beim updaten wurde aber nur 1176 Datensätze geändert... er scheint also nur dann was zu ändern, wenn der Preis der beiden Tabellen unterschiedlich ist...
Daraufhin habe ich alle Preise der Tabelle shopartikel auf 0 gesetzt und das erste update erneut ausgeführt. Dann waren es 1441 Datensätze die geändert wurden. Die differenz der zwischen 1441 und 1418 waren die Datensätze in denen der Preis gleich blieb.
Ich verstehe jetzt nicht so ganz warum die Preise bei meinem ersten Befehl nicht vollständig geändert wurden. Kann das jemand nachvollziehen?
PHP-Code:
UPDATE
shopartikel t1, zw t2
SET t1.artpreis = t2.preis
WHERE t1.artnum = t2.artikelnum
PHP-Code:
SELECT t1.artnum, t1.artpreis, t2.preis
FROM shopartikel t1, zw t2
WHERE t1.artpreis != t2.preis
AND t1.artnum = t2.artikelnum
ORDER BY t1.artnum ASC
Daraufhin habe ich alle Preise der Tabelle shopartikel auf 0 gesetzt und das erste update erneut ausgeführt. Dann waren es 1441 Datensätze die geändert wurden. Die differenz der zwischen 1441 und 1418 waren die Datensätze in denen der Preis gleich blieb.
Ich verstehe jetzt nicht so ganz warum die Preise bei meinem ersten Befehl nicht vollständig geändert wurden. Kann das jemand nachvollziehen?
Kommentar