![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 107 Pomógł: 4 Dołączył: 11.08.2010 Skąd: Inowrocław Ostrzeżenie: (10%) ![]() ![]() |
Witam.
Mam takie pytanko, jest sobie taka tabelka:
Teraz chodzi o zapytanie , najlepiej jedno, które będzie wyciągało nam grupę główną później podgrupę , wszystkie podgrupy grupy głównej z tych wszystkich podgrup po kolei wszystkie ich podgrupy 2 poziomu a następnie z nich kolejne wszystkie podgrupy 3 poziomu i tak dalej... Wstępnie myślałem nad użyciem uniona ale to się nie sprawdza. miałem też takie zapytanie które działa dobrze póki się nie zmienią grupy obecne pozycji
Później orbi się już coraz większy bałagan. W PHP rozwiązałem problem poprzez osobne 3 zapytania ale to zero optymalizacji jest (zapytanie generuje się fakt w niecałe 0.02 s. , tych grup będzie kilkadziesiąt tysięcy - maksymalnie zagnieżdżone do 4 poziomu...) Proszę o jakieś wskazówki. Osobiście idę w stronę
Powtórzony zabieg łączenia 4 razy... Ale nie wiem jak się to faktycznie sprawdzi ![]() Będę to testował a między czasie sprawdzał czy macie jakieś inne pomysły... Pozdrawiam. Ps. Proszę nie pisać rozwiązania rozbitego na kilka zapytań całkowicie osobnych bo to już dawno mam ![]() EDIT--------------------- Rozwiązanie moje problemu, lecz nie wiem czy to będzie wystarczająco dobre...
Ten post edytował Prezi2907 19.12.2012, 15:02:29 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 873 Pomógł: 25 Dołączył: 24.07.2005 Ostrzeżenie: (0%) ![]() ![]() |
rozwiązanie nie jest optymalne bo co jeśli zagłebisz się dalej.
Potrzebujesz napisać funkcję rekurencyjną, która będzie wykonywać jedno zapytanie ( nadal rozwiązanie nie-super optymalne ) Napisałem kiedyś coś takiego w Codeigniter, miałem podobną strukturę tabeli ( rodzić, dzieci .... ) Przeanalizuj to może Ci pomoże.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 107 Pomógł: 4 Dołączył: 11.08.2010 Skąd: Inowrocław Ostrzeżenie: (10%) ![]() ![]() |
Witam
Dzięki za info ale jak mówiłem rozwiązanie powtarzanego zapytania nie daje mi zamierzonych efektów... Moje rozwiązanie daje mi możliwość dodawani poziomów tylko i wyłącznie dodając kolejnych left join z selectem... chciałem to jeszcze na unionach rozwalić (bo już miałem coś takiego) ale to nadal takie dość dziwne rozwiązanie... Dzięki mimo to za pomoc. Do jutra postaram się dać odpowiedź co udało mi się zdziałać. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 24.07.2025 - 21:21 |