3 Tabellen updaten

null_plan

Mitglied
Hallo Forum,

als absoluter Mysql Anfänger stehe ich gerade vor folgendem Problem, es sind folgende drei Tabellen vorhanden:

artikel (alle relevanten Artikeldaten)
artikel_preis (EK, REC_ID aus artikel, Lieferanten_ID)
artikel_update (EK, Lieferanten_ID, BARCODE)

Jetzt möchte ich den EK updaten aber dieser doofe UPDATE Befehl von Mysql sagt immer "Nö mag ich nicht, deine Syntax ist falsch" :(
Wie müßte die SQL Anweisung lauten daß es funktioniert?

Vielen Dank für Eure Hilfe.

Gerald
 
Zeig mal was du propbiert hast, dann können wir dir ev. sagen was falsch ist.
Die genaue Fehlermeldung währe auch nett, ich glaub nämlich nicht, dass sie mit 'Nö' beginnt.

In welcher der 2 Tabellen die den EK besitzen willst du ihn updaten?
Und mit was? einem neuen Festwert? Oder in der PReistabelle aus der update-tabelle mit einer uns unbekannten Verknüpfung?

Ansonsten:
SQL:
UPDATE
    artikel_preis
SET 
    EK = 'neuerEkWennEKIstEinVarcharAnsonstenWennEkIstEineNummerDannOhneHochkoma';
 
Zuletzt bearbeitet von einem Moderator:
UFF, seid ihr schnell!

Also ich versuche den EK in der artikel_preis mit dem EK aus der preis_update zu aktuallisieren.
Versucht habe ich z.B. folgendes:
update artikel, artikel_preis, preis_update set preis where artikel.BARCODE = preis_update.BARCODE and artikel_preis.ARTIKEL_ID=artikel.REC_ID

Und die Fehlermeldung lautet:

SQL Error (1064): You have an Error....
 
Code:
UPDATE `tabellen-name` SET `tabellenFeld` = 'Neuer Wert' WHERE `tabellenFeld2` = 'irgendeinWert'

Das wäre die Syntax ;)
 
Nee, klappt nicht :(

Vielleicht habe ich mich auch missverständlich ausgedrückt. Ein Artikel kann über mehrere Lieferanten bezogen werden, in der Tabelle artikel_preis ist der Artikel über die REC_ID aus der Tabelle artikel mit der ID des Lieferanten gelistet. Die REC_ID kann ich nur anhand des Barcodes ermitteln, die ID des Liferanten und den neuen EK habe ich in der preis_update.
 
SQL Error (1064): You have an Error....
Nur ...? Oder kommt da noch mehr?

Wenn man dein SQL mal formatiert, sieht man dass es nicht gehen kann. Der Preis wird nicht gesetzt
SQL:
UPDATE 
	artikel, 
	artikel_preis, 
	preis_update 
SET 
	preis 
WHERE 
	artikel.BARCODE = preis_update.BARCODE 
	AND artikel_preis.ARTIKEL_ID=artikel.REC_ID

Sowas sollte eher funktionieren
SQL:
UPDATE 
	artikel, 
	artikel_preis, 
	preis_update 
SET 
	artikel_preis.preis = preis_update.preis
WHERE 
	artikel.BARCODE = preis_update.BARCODE 
	AND artikel_preis.ARTIKEL_ID=artikel.REC_ID
 
Zuletzt bearbeitet von einem Moderator:
Leider klappt es so auch nicht,
"You have an error in your SQL syntax near 'artikel_preis, preis_update SET artikel_preis.preis = preis_update.preis WHERE art' at line 1"
ist alles was klappt.
 
Heist denn das Feld auch Preis? In deiner Tabellenaufstellung finde ich das Feld nicht. Abwer in deinem SQL steht Preis. Oder kommt dort EK hin?
 
Zurück