Schrift
[thread]3711[/thread]

Rekursive Suche via SQL



<< >> 6 Einträge, 1 Seite
pktm
 2006-09-01 16:00
#34618 #34618
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Hallo!

Ich habe eine Tabelle:
Code: (dl )
1
2
3
4
5
6
7
Artikelnummer | Position | Typ | Ressource
200000 1 MA 300217
200000 2 MA 300004
300217 1 MA 300002
300217 2 MA 300038
300004 1 MA 700000
300004 2 MA 300014


Die Tabelle repräsentiert eine Ressourcenliste. Eine Ressource wird aus mehreren anderen aufgebaut. Jetzt würde ich diese gerne vollständig auslesen und entsprechend ihrem Aufbau sortiert ausgeben.

Wenn ich SELECT * FROM Tabelle WHERE Artikelnummer = 200000 AND Typ = "MA" eingebe erhalte ich aber nur die erste Ebene.
Ich möchte aber rekursiv alle Ebenen durchkämmen und entsprechend sortiert ausgeben.

Also wenn ich das Statement abschicke soll heruaskommen:
Code: (dl )
1
2
3
4
5
6
7
1. 200000
1.1 300217
1.1.1 300002
1.1.2 300038
1.2 300004
1.2.1 700000
1.2.2 300014


Dass es soetwas wie rekursive Statements gibt habe ich gefunden, aber nicht, wie sie funktionieren.

Ich möchte das aber auf jeden Fall auf SQL-Ebene lösen!

Hat jemand ein Beispiel?

Grüße, pktm
http://www.intergastro-service.de (mein erstes CMS :) )
Taulmarill
 2006-09-01 17:12
#34619 #34619
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
afaik wird das mit standart SQL nicht zu lösen sein, welche datenbank benutzt du denn?
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
pktm
 2006-09-01 17:48
#34620 #34620
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
MySQL und MS Server 2000 (nicht zusammen, aber das sind die beiden, mit denen ich zu arbeiten habe).
Ich habe da mal ein bischen mit Prozeduren herumgespielt, kam aber zu keinem Ergebnis. Dann habe ich noch das hier gefunden: http://dev.mysql.com/tech-resources/articles/hierarchical-data.html
Aber das bringt mir auch nicht so viel, weil ich nicht weis, wie ich die Sache mit einer nicht bekannten Baum-Tiefe bearbeiten kann, geschweige denn, wie ich das Ergebnis verwerten soll (die Lite soll nämlich anders aussehen). Und mal eben an die 40.000 Eintraäge in eine temporäre Tabelle schreiben um dieses "Nested Set Model" umzusetzen ist auch nicht drin.

Mal sehen. Hast du ein Beispiel, wie man sowas realisiert, ohne sich an standard SQL zu halten?
http://www.intergastro-service.de (mein erstes CMS :) )
esskar
 2006-09-01 22:04
#34621 #34621
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
hmm; kannst du dein tabellen design nicht nochmal überdenken ?

aber ich versteh auch nicht, wie du von den inputdaten auf deinen output kommst!
MartinR
 2006-09-02 13:38
#34622 #34622
User since
2004-06-17
305 Artikel
BenutzerIn
[default_avatar]
tja, ich verstehe es schon. Aber Nested Sets wären hier glaube ich wirklich die bessere Wahl. Ansonsten wirst Du wohl die Rekursion in Perl programmieren müssen.
pktm
 2006-09-02 18:01
#34623 #34623
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Nun, das Tabellendesign ist gegeben, da kann ich nichts dran rütteln. Mit Perl habe ich es jetzt soweit fertig, aber ich denke, ich sehe mir diese SQL-Prozeduren nochmal genauer an...
http://www.intergastro-service.de (mein erstes CMS :) )
<< >> 6 Einträge, 1 Seite



View all threads created 2006-09-01 16:00.