CONNECT BY-Alternative in MySQL Hallo,
ich mache am besten kurz an einem kleinen Beispiel klar was ich machen möchte:
Vielleicht kennt der eine oder andere von euch diese "Social Networking"-Dinger (studiVZ/openBC/...). Dort kann man Bekanntschaften anlegen.
Also User A kennt User B und User C.
User B kennt User D, E und F
User F kennt User X.
Wenn ich als User A nun das "Profil" von user X anschaue wird mir angezeigt: Du kennst diese Person über "3-Ecken:" User A->User B-> User F-> User X.
Wenn ich User B anklicke: Du kensnt diese Person über 1-Eck: User A-> User B.
und so weiter und so fort.
(Man könnte sich hier jetzt auch Flugverbindungen vorstellen. Stuttgart->New York, New York ->Frankfurt, Frankfurt->London. Wenn ich von Stuttgart nach London will: Stuttgart->New York->Frankfurt->London).
Ich habe also eine Tabelle in der nur die _direkten_ Verbindungen stehn und möchte jetzt über ein Query die kürzetste "indirekte" Verbindung finden falls keine direkte besteht.
Wie kann ich sowas möglichst einfach realisieren?
Ich kenne ja die "Tiefe" nicht also geht es wohl schwer über einen einfachen JOIN (da bräuchte ich ja für jede "Tiefe" eine Abfrage).
Bei Oracle würde ich das irgendwie über CONNECT BY versuchen. Aber wenn ich das richtig verstanden habe ist das bei MYSQL leider noch auf der TODO-Liste. Gibt es da was ähnliches? Ideen?
__________________ Today you...Tomorrow me. |