Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Kategorie, wpisy w kategoriach i zliczanie wpisów.
mihaup
post
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:
  1. SELECT * FROM kat WHERE lft BETWEEN 1 AND 18 ORDER BY lft ASC;
)

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:
  1. SELECT kat.title, COUNT( ogloszenia.id ) AS ile, kat.lft AS xlft, kat.rgt AS xrgt
  2. FROM ogloszenia, kat
  3. WHERE ogloszenia.categoryId
  4. IN (
  5.  
  6. SELECT kat.id
  7. FROM kat WHERE kat.lft
  8. BETWEEN xlft AND xrgt
  9. )
  10. GROUP BY kat.id


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
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 12:58