Problem mit meiner Lösung |
Based
Grünschnabel
Dabei seit: 29.10.2022
Beiträge: 1
![](images/spacer.gif) |
|
Problem mit meiner Lösung |
![Zum Anfang der Seite springen Zum Anfang der Seite springen](images/goup.gif) |
Meine Frage:
Hallo zusammen,
Ich habe zurzeit Datenbanken als Thema in der Schule und habe ein Problem mit meinem Code und oder meinem Programm um eine Aufgabe zu Lösung. Ich wollte wissen ob mein Lösungsansatz Sinn ergibt.
Folgende Tabellen: Trainingsplan(TPID, ^ZID, ^TID) Trainingseinheit(TEID, Tag, Sollzeit, SollDistanz, ^TPID) Trainer(TID, Vorname, Nachname, Grundpreis) Ziel(ZID, Bezeichnung, Faktor)
Aufgabe Grundpreis von allen Trainer um 5% reduzieren.
Meine Ideen:
Mein Lösungsansatz: UPDATE Trainer SET Grundpreis = Grundpreis * 0.95 FROM Trainer JOIN Trainingsplan JOIN Trainingseinheit on Trainer.TID = Trainingsplan.TID AND Trainingsplan.TPID = Trainingseinheit.TPID
|
|
29.10.2022 16:07 |
|
|
as_string
Haudegen
![](images/star2.gif) ![](images/star2.gif) ![](images/star2.gif)
Dabei seit: 06.11.2013
Beiträge: 638
Herkunft: Heidelberg
![](images/spacer.gif) |
|
Die Datenbank würde aber nur erlauben, dass in ein Trainingsplan zu nur einem Trainer gehört. Könnten in einem Trainingsplan nicht auch verschiedene Trainer eine Trainingseinheit haben?
Zu Deiner Abfrage: Warum die ganzen Joins? Du musst doch nur was an der Trainer-Tabelle ändern und brauchst dazu auch keine Informationen aus anderen Tabellen. Dann reicht es, wenn Du
UPDATE Trainer SET Grundpreis = Grundpreis * .95
schreibst. Ein Update hat auch keine FROM clause. Das was ein SELECT hinter dem FROM hat, kommt beim UPDATE gleich direkt nach dem UPDATE.
Gruß
Marco
Edit: Hab gerade gelesen, Du kannst sehr wohl eine FROM-Clause im UPDATE haben und dort auch JOINs verwenden. Aber das brauchst Du hier ja nicht, das wäre nur interessant, wenn nicht alle Trainer die Grundpreis-Änderung bekommen sollen, abhängig von Daten in anderen Tabellen. Das ist hier ja aber nicht der Fall.
|
|
03.11.2022 15:24 |
|
|
|