![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 31.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
Mam dwie tabele:
pierwsza: towary - towar_id (PK) - kat_id (FK) - ID kategorii do której należy towar druga: kategorie - kat_id (PK) - kat_nadrz (ID kategorii nadrzędnej, jeśli ma wartość "0" => jest to kategoria główna) - kat_poziom (poziom w hierarchii kategorii na któym się ona znajduje) Przykład: Załóżmy, że mam 3 kategorie, pierwsza główna i dwie podrzędne należące do tej pierwszej. Tabela będzie miała wówczas następującą zawartość: 1;0;1 2;1;2 3;1;2 Pytanie: 1. W jaki sposób sformułować zapytanie do bazy MySQL aby pytająć o towary należące do kategorii o ID=1 w wynikach znalazły się również wszystkie towary znajdujące się w podkategoriach kategorii o ID=1(tu: do kategorii o ID=2 i 3)? Czy jest możliwe takie sformułowanie tego zapytanie by wybierało towary więcej niż jeden poziom w dół hierarchii kategorii. 2. Jeśli pytanie nr1 nie dokońca jest możlwe do realizacji to w jaki sposób mogę chociaż zliczyć ile towarów należy do danej kategorii razem z jej wszystkimi podkategorami? Nie wiem czy się do końca jasno wyraziłem wiadomo co mi chodzi, problem najlepiej zobrazuję takiem przykładem: Załóżmy, że na Allegro wyszukuję towary w kategorii "Aparaty cyfrowe" a chcę by w wynikach był aparat który jest w podkategorii "Canon". Szukam kategorię wyżej, ale kategoria "Canon" jest podkategorią "Aparatów cyfrowych" więc jest uwzględniana w wynikach. Czy ma ktoś pomysł na rozwiązanie, jeśli tak to z góry bardzo dziękuję ... (wersja MySQL: 3.x więc podazpytania odpadają, chyba, że nie ma innej możliwości obejścia tego problemu to wezmę do uwagę zmianę na 4.1) |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 31.07.2025 - 08:00 |