ďťż
 
problem dolaczania pustych kategorii ďťż
 
problem dolaczania pustych kategorii
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

problem dolaczania pustych kategorii



eXscythe - 04-07-2006 00:56
problem dolaczania pustych kategorii
  Witam,

Moze ktorys z bardziej doswiadczonych kolegow z zakresu baz danych
pomoze mi w rozwiazaniu malego problemu.

mam dwie tabele o ponizszej strukturze (troche ja uproscilem, zeby bylo
przejrzysciej)

newscat
------------------------------
catid | parent_id | catname

news
------------------------------
newsid | newscat | content

Chce

1. wyswietlic spis kategorii z dodatkowa kolumna zawierajaca ilosc
newsow w danej kategorii.
Robie to na dwa sposoby:

SELECT c.* , count(*) FROM news as n join newscat as c on c.catid =
n.newscat group by c.catid
SELECT c.*, count(n.newsid) FROM news as n, newscat as c WHERE
n.newscat = c.catid group by c.catid

Niestety zaden z tych sposobow nie wyswietla pustych kategorii, czyli
kategorii dla ktorych nie ma zadnego newsa. A potrzebuje zeby pojawily
sie na spisie z count rownym 0

2. Milo by bylo gdyby kategorie wyswietlily sie w postaci drzewka.

kategoria1
-kategoria73
-kategoria23
--kategoria13
-kategoria50
kategoria2
kategoria3
-kategoria98

etc.

Nie wiem czy jest jakis sposob na to w sql, czy trzeba sobie napisac w
zamian w php funkcje rekurencyjna do przechodzenia po tych kategoriach?
Jesli da sie to zrobic jakos ladnie zapytaniem sql, to bylbym wdzieczny
za wszelka pomoc.

Pozdrawiam





=?ISO-8859-2?Q?Micha=B3?= Kuratczyk - 04-07-2006 00:56

  eXscythe wrote:
> SELECT c.* , count(*) FROM news as n join newscat as c on c.catid =
> n.newscat group by c.catid
> SELECT c.*, count(n.newsid) FROM news as n, newscat as c WHERE
> n.newscat = c.catid group by c.catid
>
> Niestety zaden z tych sposobow nie wyswietla pustych kategorii, czyli
> kategorii dla ktorych nie ma zadnego newsa. A potrzebuje zeby pojawily
> sie na spisie z count rownym 0
OUTER JOIN

> 2. Milo by bylo gdyby kategorie wyswietlily sie w postaci drzewka.
>
> kategoria1
> -kategoria73
> -kategoria23
> --kategoria13
> -kategoria50
> kategoria2
> kategoria3
> -kategoria98
>
> etc.
>
> Nie wiem czy jest jakis sposob na to w sql, czy trzeba sobie napisac w
> zamian w php funkcje rekurencyjna do przechodzenia po tych kategoriach?
CONNECT BY (dużo na ten temat jest w FAQ)

--
Michał Kuratczyk




=?ISO-8859-2?Q?Pawe=B3_Matejski?= - 04-07-2006 00:56

  eXscythe wrote:
> 1. wyswietlic spis kategorii z dodatkowa kolumna zawierajaca ilosc
> newsow w danej kategorii.
> Robie to na dwa sposoby:
>
> SELECT c.* , count(*) FROM news as n join newscat as c on c.catid =
> n.newscat group by c.catid

LEFT JOIN

> 2. Milo by bylo gdyby kategorie wyswietlily sie w postaci drzewka.
>
> kategoria1
> -kategoria73
> -kategoria23
> --kategoria13
> -kategoria50
> kategoria2
> kategoria3
> -kategoria98

FAQ

--
P.M.




eXscythe - 04-07-2006 00:56

 
Paweł Matejski napisał(a):
> eXscythe wrote:
> > 1. wyswietlic spis kategorii z dodatkowa kolumna zawierajaca ilosc
> > newsow w danej kategorii.
> > Robie to na dwa sposoby:
> >
> > SELECT c.* , count(*) FROM news as n join newscat as c on c.catid =
> > n.newscat group by c.catid
>
> LEFT JOIN
>
> > 2. Milo by bylo gdyby kategorie wyswietlily sie w postaci drzewka.
> >
> > kategoria1
> > -kategoria73
> > -kategoria23
> > --kategoria13
> > -kategoria50
> > kategoria2
> > kategoria3
> > -kategoria98
>
> FAQ
>
> --
> P.M.

Próbowałem już wcześniej zarówno LEFTa jaki OUTERa i niestety
problem pozostaje.
Nadmienię, że korzystam z 4.1.11 wersji MySQLa

Co do drzewek, to faq niestety nie wyjasnia jak do metody 2 (bo taka
przyjalem) napisac zapytanie SQL. Zmienic metody nie moge.





interia - 04-07-2006 00:56

  Select c.nazwa, (select count(*) from news where news.catid = c.id) from
catid as c

Powinno działać

Pozdro

-----Original Message-----
From: owner-pl-comp-bazy-danych@newsgate.pl
[mailto:owner-pl-comp-bazy-danych@newsgate.pl] On Behalf Of Paweł Matejski
Sent: Monday, July 03, 2006 3:09 PM
To: pl-comp-bazy-danych@newsgate.pl
Subject: Re: problem dolaczania pustych kategorii

eXscythe wrote:
> 1. wyswietlic spis kategorii z dodatkowa kolumna zawierajaca ilosc
> newsow w danej kategorii.
> Robie to na dwa sposoby:
>
> SELECT c.* , count(*) FROM news as n join newscat as c on c.catid =
> n.newscat group by c.catid

LEFT JOIN

> 2. Milo by bylo gdyby kategorie wyswietlily sie w postaci drzewka.
>
> kategoria1
> -kategoria73
> -kategoria23
> --kategoria13
> -kategoria50
> kategoria2
> kategoria3
> -kategoria98

FAQ

--
P.M.

____________
Poczta sprawdzona przez G DATA AntiVirenKit
Wersja: AVK 16.7947 z dnia 17.06.2006
Informacje: www.gdata.pl

------------------------------------------------------------------------
Znajdź krótszą drogę do pracy!
http://map24.interia.pl - interaktywny planer podróży.

--
Archiwum grupy: http://niusy.onet.pl/pl.comp.bazy-danych




tomasz.rup@gmail.com - 04-07-2006 00:56

  eXscythe napisał(a):
> Próbowałem już wcześniej zarówno LEFTa jaki OUTERa i niestety
> problem pozostaje.

A w dobrej kolejności LEFTa stosowałeś?
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    [MSSQL2000] Problem z =?ISO-8859-2?Q?tabel=B1/indeksem/zapytanie?==?ISO-8859-2?Q?m_czy_b=B3=B1d_w_bazie_danych=2E=2E=2E?= mysql i mysql-front, problem String line; if (line=="cos"){...}....problem Problemy z =?ISO-8859-2?Q?instalacj=B1_PostgreSQL_na_syste?==?ISO-8859-2?Q?mach_Windows?= [postgres] Problem z =?ISO-8859-2?Q?zmian=B1_struktury_i_z?==?ISO-8859-2?Q?ale=BFno=B6ciami=2E?= [oracle] =?ISO-8859-2?Q?zmia=BFd=BFony_przez_problem=3A_za?==?ISO-8859-2?Q?pytanie_do_hierarchi?= Problem z wartościami w MySQL :( [ MySQL and ASP and VBScript ] [PGSQL] czy ktos mial problemy z initdb pgsql 8.1 ? [MySQL] Problem z zapisem danych w bazie danych Problem z mysql - can't connect to MySQL/nietypowo...
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • anette.xlx.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com