Hi,
Auch die Tabellenstruktur scheint mit suboptimal, zumindest in einem Punkt
Ja, weiß ich.
Die Spalte L-ID in der Tabelle LM führe ich redundant mit. Eigentlich nur zum entwickeln, sie wäre unnötig, weil die Relation ja bereits über die LT-ID Spalte gegeben ist.
Szenario:
Tabelle L:
L-ID, ArtTabelle LT:
LT-ID, L-ID, P-IDTabelle LM:
LM-ID, L-ID, LT-ID, Anzahl
Du hast da quasi ein Dreieck drin. Sowohl LT als auch LM haben einen Verweis auf L, aber LM hat auch einen Verweis auf LT. Somit ist bereits LM über LT mit L verbunden und braucht keinen direkten Verweis auf L.
Ja. Genau das meinte ich oben.
Oder zeigen etwa miteinander verbundene LT und LM auf unterschiedliche L?
Das auch.
Trotzdem könnte die Spalte L-ID in der LM-Tabelle ersatzlos entfallen.
Ich möchte, falls Eintrag in Tabelle LM vorhanden, in der Tabelle LM die Anzahl eines Postens LT.P-ID="ABC" updaten. Aber nur dann, wenn der zugehörige Eintrag in der Tabelle L die Art "XY" hat.
Wie sieht das aus?
UPDATE l-tabelle l
JOIN lt-tabelle lt
ON l.L-ID = lt.L-ID
LEFT JOIN lm-tabelle lm
ON lt.LT-ID = lm.LT-ID
SET lm.Anzahl = ".set_kontextwechsel($neue_Anzahl,'int')."
WHERE l.Art = 'XY' AND
lt.PID = ".set_kontextwechsel($t_id,'int')."
MySQLs UPDATE kennt eine Multi-Table-Variante. Die kann einerseits Daten in mehreren Tabellen ändern, andererseits können die Joins auch nur zum Finden der richtigen Daten in einer Tabelle herangezogen werden.
Hast Du dafür mal ein Beispiel?
Gruß, Frank