Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 33 Pomógł: 0 Dołączył: 2.11.2006 Ostrzeżenie: (0%)
|
Heja,
mam podział na kategorie z wykorzystaniem Modified Preorder Tree Traversal ( left i right ), oraz powiazane z tymi kategoriamii pewne rekordy. tabela kategorii: kategorie (idKategorii, title, lft, rgt) tabela z wpisami: wpisy (idWpisu, title, content, idKategorii ) wszystko gra i buczy przy pobieraniu danych, ale nie wiem jak najwydajniej pobrac informacje o kategoriach ( standardowo mam: ) tak, aby oprocz pol id, title, lft, rgt mieć jeszcze COUNT(ogloszenia.id) dla kazdej kategorii wliczajac wpisy w podkategoriach. Oczywiscie moge to w foreach w php robic, ale nie chce sypac zapytaniami do bazy jak ziarnem do kur. Jak narazie wykobinowalem takie cos:
To produkuje mi tabele jakiej sie spodziewam, z wyjatkiem kategorii do ktorych nie sa przypisane zadne ogloszenia. Jak zmodyfikowac to zapytanie, aby uwzglednialo kategorie, w ktorych nie ma ogloszen? Ten post edytował mihaup 7.12.2006, 22:33:33 |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 675 Pomógł: 15 Dołączył: 7.11.2004 Skąd: Katowice Ostrzeżenie: (0%)
|
Więc nie wiem, czy dobrze zrozumiałem problem: masz tabelę kategorie i wpisy, chcesz wyświeltić zawartość tabeli kategorie (wszystkie rekordy) + pole zliczające ilość wystąpień tej kategorii w tabeli wpisy?
Jeżeli tak, to przedstawione przez Ciebie zapytanie SQL nie działa poprawnie: Uzupełnij tabelę (mnie wystarczyły po cztery rekordy w każdej...) i sie przekonaj. Aby dokonać złączenia, wybierającego wszystkie rekordy z jednej tabeli, użyj składni LEFT [OUTER] JOIN. Poniższa składnia SQL działa (oczywiście dla mojego zrozumienia przedstawionego problemu):
PS. Mam prośbę: jak piszesz o tabelach wpisy i kategorie, to trzymaj się tego nazewnictwa, a nie każ mi się domyslać, czy zapytanie SQL odnoszące się do tabeli ogłoszenia, jest tym samym, co odnoszące się do tabeli wpisy. No chyba, że to cos zupełnie innego... |
|
|
|
![]() ![]() |
|
Aktualny czas: 23.12.2025 - 14:27 |