| Autor
|
Thread |
 |
|
Geier
Seniorgeier
Anmeldungsdatum: 28.05.2003
Beiträge: 933
Wohnort: Gladbeck |
Strukturbaum aus Datenbank erstellen (SQL)
Ich möchte aus einer Datenbank, in der meine Vertriebspartner neben weiteren Daten in der Form VP-Nummer und ULVP-Nummer (Nr. des Werbers) gespeichert stehen. Wie muss nun die SQL-Abfrage aussehen, wenn ich eine Strukturübersicht als Ergebnis haben möchte?
Beispiel für Datenbankeinträge
VP: 8259-445, ULVP 8259-59, Geier
VP: 8259-550, ULVP 8259-445, Müller
VP: 8259-560, ULVP 8259-445, Meier
VP: 8259-570, ULVP 8259-445, Schulze
VP: 8259-580, ULVP 8259-560, Kunze
...
Das Ergebnis soll werden:
8259-59
--8259-445
----8259-550
----8259-560
------8259-580
----8259-570
...
Soweit das Problem verstanden? Danke für jeden brauchbaren Tipp!!
ps: Es gibt unendlich viele Ebenen. _________________ http://www.geldgeier.de & mehr
|
01.07.2003, 20:12 |
|
|
Evil Azrael
Schindgeier

Anmeldungsdatum: 05.06.2003
Beiträge: 6125
Wohnort: Rheinkilometer 666 |
welche datenbank?
Oracle und Postgres haben funktionen für hierarchische daten. _________________
Private Homepage
Nieder mit MySQL!
Nonstop Nonsens!
|
01.07.2003, 20:30 |
|
|
Geier
Seniorgeier
Anmeldungsdatum: 28.05.2003
Beiträge: 933
Wohnort: Gladbeck |
es ist eine mysql-datenbank _________________ http://www.geldgeier.de & mehr
|
01.07.2003, 20:44 |
|
|
Evil Azrael
Schindgeier

Anmeldungsdatum: 05.06.2003
Beiträge: 6125
Wohnort: Rheinkilometer 666 |
selber schuld. kann mysql INSERT ... SELECT ... ?
also ein insert mit einem select statement? _________________
Private Homepage
Nieder mit MySQL!
Nonstop Nonsens!
|
01.07.2003, 20:59 |
|
|
Geier
Seniorgeier
Anmeldungsdatum: 28.05.2003
Beiträge: 933
Wohnort: Gladbeck |
keine ahnung, ehrlich gesagt  _________________ http://www.geldgeier.de & mehr
|
01.07.2003, 21:57 |
|
|
Paidsurf.org
Babygeier
Anmeldungsdatum: 05.06.2003
Beiträge: 5
Wohnort: Berlin |
mysql kann, sollte ungefähr so aussehen wenn Du es so meinst:
insert into TABELLE select * from TABELLE where WASAUCHIMMER
Greetz
Paidsurf _________________
Paidsurf.org
Funnystart.de
surfer-info.de
|
02.07.2003, 00:53 |
|
|
Evil Azrael
Schindgeier

Anmeldungsdatum: 05.06.2003
Beiträge: 6125
Wohnort: Rheinkilometer 666 |
hmm, trotzdem fehlen subqueries.
kannst es so machen
create temp table dummy (id, ebene,werberid);
INSERT INTO dummy (id, ebene) VALUES (ID_VOM_Ersten,0);
i sei jetzt eine externn variable, die immer inkrementiert wird.i
INSERT INTO dummy SELECT partner.vp, i, partner.ulvp FROM partner JOIN dummy ON (dummy.id = partner.ulvp AND dummy.ebene = i-1) WHERE (dummy.ebene = i-1);
das immer durchlaufen, bis das 0 einträge eingefügt werden.
dann kannst du die tabelle dummy auslesen und löschen.
du müsstest dann immer noch durch das ergebnis selber durch"loopen". das geht so aber evt schneller, wenn dieser baum nur ein kleiner teil der gesamten einträge ist. _________________
Private Homepage
Nieder mit MySQL!
Nonstop Nonsens!
|
02.07.2003, 17:25 |
|
|
Mookie
Babygeier
Anmeldungsdatum: 05.06.2003
Beiträge: 17
Wohnort: Datteln |
Es kommt auch darauf an was er machen möchte und woher er kommt.
Also soll daraus eine "myLeafs"-Abfrage werden um zu sehen wer unter mir kommt ist es ja etwas einfacher als wenn er den ganzen Baum erstellen möchte... _________________ ~MfG Mookie~
|
03.07.2003, 15:51 |
|
|
Geier
Seniorgeier
Anmeldungsdatum: 28.05.2003
Beiträge: 933
Wohnort: Gladbeck |
Also, ich brauche den ganzen Baum, und in einer weiteren Abfrage auch nur den Teil des Baumes, der einem bestimmten Upliner zugeordnet ist. Derzeit habe ich mir eine Notlösung gebastelt, indem ich erst einmal alle VP auslese, dann eine Abfrage mache ob diese VP-Nummer als ULVP bei einem anderen zugeordnet ist, usw. Bisher habe ich 7 solcher Abfragen ineinander verschachtelt, was nicht besonders intelligent wirkt, und zu Problemen führt, sobald der Baum in die 8. sowie weitere Ebenen wächst (Das Ebenensystem ist unbegrenzt!!) _________________ http://www.geldgeier.de & mehr
|
03.07.2003, 17:25 |
|
|
Evil Azrael
Schindgeier

Anmeldungsdatum: 05.06.2003
Beiträge: 6125
Wohnort: Rheinkilometer 666 |
hat diese 8259 eine bedeutung? _________________
Private Homepage
Nieder mit MySQL!
Nonstop Nonsens!
|
03.07.2003, 17:55 |
|
|
Geier
Seniorgeier
Anmeldungsdatum: 28.05.2003
Beiträge: 933
Wohnort: Gladbeck |
alle vp-nummern dieses baumes beginnen mit 8259- ansonsten hat sie eher weniger zu bedeuten _________________ http://www.geldgeier.de & mehr
|
04.07.2003, 09:03 |
|
|
Evil Azrael
Schindgeier

Anmeldungsdatum: 05.06.2003
Beiträge: 6125
Wohnort: Rheinkilometer 666 |
hmm, mysql hat ja leider keine stored procedures. hat es denn wenigstens eingebaute funktionen, um in einer abfrage strings manipulieren zu können?
ich bräuchte strings zusammenfügen, teilstrings entfernen bzw teilstrings zurückgeben und länge von strings ermitteln. bitte mit Syntax angeben. _________________
Private Homepage
Nieder mit MySQL!
Nonstop Nonsens!
|
04.07.2003, 12:46 |
|
|
Geier
Seniorgeier
Anmeldungsdatum: 28.05.2003
Beiträge: 933
Wohnort: Gladbeck |
also, mein problem ist eher weniger, irgendwelche strings zu bearbeiten, sondern eine möglichkeit zu finden, die struktur in form eines "strukturbaumes" auszulesen und auszugeben. das problem liegt darin, dass es theroetisch unendlich viele ebenen geben kann, aber alle berücksichtigt werden müssen. nach meiner variante ist es darauf begrenzt, wie oft ich die for-schleife hart eincodiert habe _________________ http://www.geldgeier.de & mehr
|
04.07.2003, 14:12 |
|
|
Evil Azrael
Schindgeier

Anmeldungsdatum: 05.06.2003
Beiträge: 6125
Wohnort: Rheinkilometer 666 |
welche programmiersprache? kann die mysql api dort angeben, wieviele datensätze bearbeitet worden sind (affected_rows) bei INSERT und UPDATEs? gib mir die funktionen für die stringmanipulation und wir machen das mal. _________________
Private Homepage
Nieder mit MySQL!
Nonstop Nonsens!
|
04.07.2003, 14:18 |
|
|
Geier
Seniorgeier
Anmeldungsdatum: 28.05.2003
Beiträge: 933
Wohnort: Gladbeck |
ich versteh nur bahnhof also das ganze ist in php mit mysql zu realisieren _________________ http://www.geldgeier.de & mehr
|
04.07.2003, 15:37 |
|
|
Evil Azrael
Schindgeier

Anmeldungsdatum: 05.06.2003
Beiträge: 6125
Wohnort: Rheinkilometer 666 |
such die stringfunktionen raus. _________________
Private Homepage
Nieder mit MySQL!
Nonstop Nonsens!
|
04.07.2003, 17:11 |
|
|
|
|
Geier
Seniorgeier
Anmeldungsdatum: 28.05.2003
Beiträge: 933
Wohnort: Gladbeck |
hmmm, also gibt es keine brauchbare lösung? wie lautet die von rentier? _________________ http://www.geldgeier.de & mehr
|
05.07.2003, 09:32 |
|
|
Evil Azrael
Schindgeier

Anmeldungsdatum: 05.06.2003
Beiträge: 6125
Wohnort: Rheinkilometer 666 |
rekursive PHP funktion. _________________
Private Homepage
Nieder mit MySQL!
Nonstop Nonsens!
|
05.07.2003, 11:03 |
|
|