Mehrere Einträge aktualisieren

Da kommt nun diese Meldung:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT DISTINCT ordernumber FROM gewichtimport LIMIT 0, 30' at line 4
 
Werbung:
Geht denn
Code:
SELECT    ordernumber
FROM    gewichtimport
GROUP BY ordernumber

Ich hab leider nirgendwo PHP MyAdmin das ich verstehen würde was er von mir will.
 
Ist die Anzahl der zurückgegebenen Zeilen
Code:
SELECT    ordernumber
FROM    gewichtimport
GROUP BY ordernumber
mit dieser Zahl
Code:
SELECT  count( ordernumber)
FROM    gewichtimport
identisch?
 
Du kannst die Temp-Tabelle ja mal leeren (DELETE FROM gewichtimport) und den Import wiederholen. Sollte das immernoch nicht eindeutig sein müsste man mal den Ersteller fragen was es damit aufsich hat.

Vieleicht sind ja nicht nur die IDs identisch sondern auch die Werte:
Code:
SELECT    ordernumber,weight
FROM    gewichtimport
GROUP BY ordernumber,weight
Wenn das 3376 entspricht ist die Sache unproblematisch zu lösen.

Es ist natürlich auch möglich, einen zufälligen Wert zu importieren. Aber ob das Sinn macht...
Code:
UPDATE    s_articles_details_sicherung
SET        weight = (    SELECT    weight
                    FROM    gewichtimport i
                    WHERE    i.ordernumber = s_articles_details_sicherung.ordernumber
                    ORDER BY i.weight DESC
                    LIMIT    1 )
Importiert den höchsten Wert zu jeder ordernumber.
 
Ist die Anzahl der zurückgegebenen Zeilen
Code:
SELECT    ordernumber
FROM    gewichtimport
GROUP BY ordernumber
mit dieser Zahl
Code:
SELECT  count( ordernumber)
FROM    gewichtimport
identisch?

Nachdem ich den import nun neu durchgeführt habe kommt hier nun einmal 3440 und einmal 3441 raus.

Führe ich nun deinen Code aus:
Code:
UPDATE s_articles_details_sicherung SET weight = ( SELECT weight FROM gewichtimport i WHERE i.ordernumber = s_articles_details_sicherung.ordernumber ORDER BY i.weight DESC LIMIT 1 )

kommt diese Meldung hier:

3440 Datensätze betroffen. ( Die Abfrage dauerte 6.5560 Sekunden )

Er hat nun aber nicht den Gewichtwert eingetragen sondern überall nur NULL eingetragen.

Er soll ja aber das Gewicht übernehmen.

In der Ausgangstabelle "gewichtimport" stehen aber die Gewichte...

Grüße
 
Er hat nun aber nicht den Gewichtwert eingetragen sondern überall nur NULL eingetragen.

Er soll ja aber das Gewicht übernehmen.

In der Ausgangstabelle "gewichtimport" stehen aber die Gewichte...

Grüße


Damit das hier mal ein ende hat...
Code:
mysql> select * from artikel;
+------+------+
| id  | val  |
+------+------+
|  1 | NULL |
|  2 | NULL |
|  3 | NULL |
|  4 | NULL |
+------+------+
4 rows in set (0.00 sec)

mysql> select * from csv;
+------+------+
| id  | val  |
+------+------+
|  2 |  2 |
|  3 |  3 |
+------+------+
2 rows in set (0.00 sec)

mysql> update artikel,csv set artikel.val=csv.val where artikel.id=csv.id;
Query OK, 2 rows affected (0.00 sec)
Rows matched: 2  Changed: 2  Warnings: 0

mysql> select * from artikel;
+------+------+
| id  | val  |
+------+------+
|  1 | NULL |
|  2 |  2 |
|  3 |  3 |
|  4 | NULL |
+------+------+
4 rows in set (0.00 sec)

Viel Spaß noch mit MySQL.
 
Werbung:
Zurück
Oben