Entsprechende MySQL Abfrage für die Szenarien

jetwork

Fleissiger Benutzer
Beiträge
97
Hallo Zusammen,

Ich brauche nochmal eure Hilfe. :(
Hier ist mein Problem:
upload_2014-11-3_19-0-46.png

Die Spalte Selbst_ref zeigt das Parent Szenario. Diese Tabelle kann man wie folgt Veranschaulichen:

upload_2014-11-3_19-1-2.png

In jedem neuem Szenario werden alle Daten von Parent Szenario übernommen und nur die Daten mit dem gleichen objekt_id überschrieben.

tbl_daten
upload_2014-11-3_19-1-33.png
Sie sind die Szenarien denen ich mit Hilfe von Beide Tabellen tbl_daten und tbl_szenarien abfragen möchte:

Basis Szenario mit der scenarien_id 1

upload_2014-11-3_19-2-25.png

Zweig1 mit der scenarien_id2. Nimmt alle Daten von Basis Szenario und aktualisiert nur die Daten mit gleichen Objekt id.


upload_2014-11-3_19-2-53.png
Zweig1a mit der scenarien_id 4.

upload_2014-11-3_19-3-25.png

Könntet ihr mir bitte eine Abfrage schreiben indem ich die Daten Szenario Zweig1a (Szenario id 4) abrufen kann. Ich schaffe es seit stunden leider nicht :(
 
Werbung:
Wie @akretschmer schon schrieb lässt sich ein solches Szenario am einfachsten mit rekursiven Abfragen lösen. Für MySQL bleiben nur JOINS. Das Problem dabei ist, dass die maximale Tiefe vorher bekannt sein muss. Wenn es beliebig viele Generationen gibt wirst du an »Ping-Pong« kaum vorbei kommen da du die Rekursion dann in der Anwendung abbilden musst.

Eine mögliche Alternative sind Nested Sets. Diese erfordern aber einen relativ hohen Aufwand wenn neue Elemente in den Baum eingefügt werden und eignen sich daher bei häufigen Änderungen nur bedingt.

Gruß
Hony
 
Gibt es denn eventuell eine maximale Tiefe die irgendwo bei möglichst unter 10 liegt? Dann wären Joins okay. Ansonsten wüste ich auch keinen Trick unter MySQL.
 
Werbung:
Danke für die Informationen. Ich werde eine Maximale Tiefe festlegen.


Ich weiß schon dass diese Abfragen rekursive Abfragen sind. Ich habe sie gelesen bevor ich gepostet habe.
Ich konnte aber genau für meine Tabellen leider selbst eine Abfrage nicht schreiben. Ich habe auch nicht viel Zeit übrig, deswegen wollte ich mal fragen ob ihr für mich eine Beispiel Abfrage schreiben könnt :(
 
Zurück
Oben