![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 172 Pomógł: 0 Dołączył: 22.09.2002 Skąd: Gorzów Wlkp Ostrzeżenie: (0%) ![]() ![]() |
Hej.
Mam pytanie odnosnie zapytania SQL. Posiadam powiedzmy natepujaca tabele z Grupami towarowymi: - GrupaID - Nazwa - RodzicID i teraz chcialbym wysiagnac wszystkie rekordy az otrzymam w polu rodzic NULL - chodzi mi o stworzenie takiego posortowanego drzewka - a mianowicie to galezi tego drzewa. Np. mam takie dane: Kod GrupaID | Nazwa | RodzicID ----------------------------------------- 1 | Aparaty | Null ----------------------------------------- 2 | Statywy | 1 ----------------------------------------- 3 | Wielofun | 2 ----------------------------------------- 4 | Kamery | Null ----------------------------------------- 5 | Cyfrowe | 4 ----------------------------------------- 6 | Analog | 4 ----------------------------------------- 7 | Professio | 5 i teraz chce powiedzmy wyciagnac dane dla Nazwy Proffesio w taki sposob ze bede mial sortowanie od najstarszego rodzica czyli Kamery->Cyfrowe->Professio. dzieki za kazda podpowiedz. ps. zalezy mi na tym aby rozwiazac to na poziomie bazy danych pozdrowka anas |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Nie warto robić jednym zapytaniem...Da się, ale trzeba wiedzieć ile jest poziomów zagłębień itd itp -
Kiedyś dużo myślałem jak to zrobić, ale w koncu wybrałem najprostszą i najlepszą wersje - rekurencyjne pobieranie daych. Należy bowiem pamiętać, że od ilości zapytań znacznie wazniejsza jest ich skomplikowanie i ilość zwracanych danych - tymczasem np. 10 zapytań mniej obciąży baze niż 1 skomplikowane zapytanie (taki sposób jak obmyśliłem przy 10 stopniach zagłebien odwoluje sie 10 razy do tej samej tabeli) - strona na pewno bedzie szybciej sie generować przy kilku(-nastu,-dziesieciu) prostych zapytaniach niż jednym. A jeżeli chcesz wiedzieć jak, to podsune rozwiązanie:
Coś w tym stylu, bo nie mam teraz możliwości sprawdzenia -------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 23.06.2025 - 07:13 |