konto usunięte

Temat: Connect by prior, a MySQL

Witam serdecznie. Jestem tu nowy, jednak przystępując do tej grupy przypomniałem sobie mój ostatni problem. A mianowicie... pisząc aplikację (PHP Zend+MySQL) dla klienta miałem tabelę przystanków (idPrzystanku, .... , idPoprzedniegoPrzystanku). Ogólnie zasada była taka, że w jednej tabeli odwołuję się do identyfikatora z tej samej tabeli. Oczywiście w systemie bazodanowym Oracle wystarczy użyć CONNECT BY PRIOR, aby wypisać przystanki w hierarchii. Natomiast macie może jakiś ciekawy pomysł jak rozwiązać to dość optymalnie w MySQL? Oczywiście nie mam na myśli tworzenia w ogromnej pętli zapytań SQL, a raczej jedno (dwa) zapytania, które ostatecznie zwrócą porządany efekt. Nie wymagam, abyście pisali tutaj cały kod, jednak usatysfakcjonuje mnie krótka informacja w jaki sposób najlepiej to rozwiązać. Dziękuję i pozdrawiam.

P.S. Problem rozwiązałem poprzez zamianę kolumny idPoprzedniegoPrzystanku na numer porządkowy, który przypisuję już po stronie PHP.Mariusz O. edytował(a) ten post dnia 01.08.12 o godzinie 17:11
Tomasz Zadora

Tomasz Zadora programuję

Temat: Connect by prior, a MySQL

Nie zrobisz tego jednym lub dwoma zapytaniami, musisz zastosować rekurencję, nie ma w MySQL jakichś specjalnych komend do takich przypadków. Ilość zapytań wyniknie z ilości przystanków na danej trasie. Przy zastosowaniu indeksów to będzie i tak bardzo szybkie - plus zawsze możesz zastosować jakiś cache.

konto usunięte

Temat: Connect by prior, a MySQL

Tomasz Zadora:
Nie zrobisz tego jednym lub dwoma zapytaniami, musisz zastosować rekurencję, nie ma w MySQL jakichś specjalnych komend do takich przypadków. Ilość zapytań wyniknie z ilości przystanków na danej trasie. Przy zastosowaniu indeksów to będzie i tak bardzo szybkie - plus zawsze możesz zastosować jakiś cache.

Dzięki za odpowiedź.

Następna dyskusja:

Szkolenie MySQL - ktos sie ...




Wyślij zaproszenie do