![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 045 Pomógł: 5 Dołączył: 8.11.2004 Skąd: trójmiasto Ostrzeżenie: (0%) ![]() ![]() |
hej. Mam drzewo kategorii, gdzie każda kategoria ma określonego ojca (lub null gdy jest to kategoria podstawowa). Mam też tabelę produktów, gdzie każdy produkt ma określoną kategorię, jak najdokładniej jak to możliwe, czyli taka kategoria, która nie ma już syna (w drzewie kategorii).
Jak sformułowac (jeśli to możliwe w jednym zapytaniu) coś takiego aby po wybraniu jakieś wyższej kategorii, znajdowało także produkty, które należą do synów danej kategorii. W zwykłym przypadku, gdyby wszystkie kategorie były by równe i nie było by podziałi drzewiastego zapytanie wyglądało by tak: SELECT * FROM produkty WHERE produkty.id_kategorii = 120; Gdzie 120 jest jest numerem id jakiejś tam kategorii. Ale mi chodzi o takie zapytanie, aby sprawdzało także prodków i potomków, a dodam że każda kategoria ma określonego jedynie ojca. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 660 Pomógł: 13 Dołączył: 9.06.2004 Skąd: Wrocław i okolice Ostrzeżenie: (0%) ![]() ![]() |
Cytat(Shogo @ 2005-08-27 13:37:00) Ja bym takie zapytanie widzial tak...
Powinno dzialac... chyba (IMG:http://forum.php.pl/style_emoticons/default/rolleyes.gif) A co do phpMyAdmin'a to zdaje sie ze jest tam cos takiego jak bit (0,1 <- bool ?) (IMG:http://forum.php.pl/style_emoticons/default/cool.gif) A jezeli nie to mozesz sie pobawic darmowa wersja SQLyog'a www.webyog.com Pewnie, że będzie działać (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Zrobiłem menu oparte na rozumowaniu jakie tu zaproponowano. Czyli mamy JEDNĄ tabele z elementami menu. Niestety nie udaje mi się to zebrać w jednym zapytaniu, ponieważ, każda kategoria jest otwierana: (IMG:http://www.tsl.ehost.pl/images/menu.jpg) i nie ma zbytnio sensu za każdym razem wczytywania wszystkich podkategorii. Kod nie zawiera więcej niż 120 linii kodu, jak by ktoś chciał, to go mogę tutaj wkleić. A co do zmiennej boolowskiej: Prawdopodobnie MySQL nie ma takowej, ja używam zmiennej typu ENUM z wartościami 1 i 0 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Pozdrawiam Ten post edytował TomASS 28.08.2005, 12:15:07 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 9.10.2025 - 08:00 |