Rekursives Select möglich?

Rekursives Select möglich?

am 10.08.2007 18:54:51 von Andreas Pietzowski

Hallo,

ich habe eine Tabelle mit zwei Int-Spalten "start" und "ziel". Dabei ist in
einer Zeile hinterlegt, welche start-ID zu welcher ziel-ID führt. Nun kann
es beispielsweise die Einträge 1->2, 2->3 und 3->4 geben. Dies bedeutet
dass es von 1, über 2, über 3 eine Verbindung nach 4 gibt.

Ist es denn in MySQL mit einem Statement möglich, von jeder ID alle diese
Verknüpfungen zu bekommen? Also wenn ich beispielsweise nach ID 2 frage
sollte ich folgendes als Ausgabe erhalten:

+-+
|1|
+-+
|2|
+-+
|3|
+-+
|4|
+-+

und wenn ich nach ID 4 frage sollte das selbe Ergebnis kommen.

Geht sowas mit einem Statement oder muss man da in der Software einfach so
lange nach "vorne" und "hinten" selecten bis kein Ergebnis mehr kommt?

Danke
Andreas

--
When you do things right,
people won't be sure you
have done anything at all.

Re: Rekursives Select möglich?

am 10.08.2007 19:28:07 von Weinzierl Stefan

Andreas Pietzowski schrieb:
> Hallo,
>
> ich habe eine Tabelle mit zwei Int-Spalten "start" und "ziel". Dabei ist in
> einer Zeile hinterlegt, welche start-ID zu welcher ziel-ID führt. Nun kann
> es beispielsweise die Einträge 1->2, 2->3 und 3->4 geben. Dies bedeutet
> dass es von 1, über 2, über 3 eine Verbindung nach 4 gibt.
>
> Ist es denn in MySQL mit einem Statement möglich, von jeder ID alle diese
> Verknüpfungen zu bekommen? Also wenn ich beispielsweise nach ID 2 frage
> sollte ich folgendes als Ausgabe erhalten:
>
> +-+
> |1|
> +-+
> |2|
> +-+
> |3|
> +-+
> |4|
> +-+
>
> und wenn ich nach ID 4 frage sollte das selbe Ergebnis kommen.
>
> Geht sowas mit einem Statement oder muss man da in der Software einfach so
> lange nach "vorne" und "hinten" selecten bis kein Ergebnis mehr kommt?
>
> Danke
> Andreas


Dies geht nur mit Stored-Procedures. Am Ende dieses Artikels ist ein
Beispiel:

http://dev.mysql.com/tech-resources/articles/mysql-storedpro cedures.pdf

Stefan

Re: Rekursives Select möglich?

am 12.08.2007 13:55:34 von Andreas Pietzowski

Weinzierl Stefan wrote:

> Dies geht nur mit Stored-Procedures. Am Ende dieses Artikels ist ein
> Beispiel:
>
> http://dev.mysql.com/tech-resources/articles/mysql-storedpro cedures.pdf

Danke!
Andreas

--
Die gefährlichste aller Weltanschauungen
ist die Weltanschauung der Leute,
welche nie die Welt angeschaut haben.
(Alexander von Humboldt)