[ _CaRtMan_ @ 11.01.2009. 17:42 ] @
Pozdrav. Imam dva pitanja.

1.) Imam dvije tabele. Jedna glavna i jedna gdje su kategorije. I sad htio bih da mogu prebrojat sve stavke koje pripadaju nekog kategoriji. Recimo da je struktura tabele sljedeca:

npr Stavke

- idstavka
- nazivstavka

kategorije

- idkategorija
- nazivkategorija
- idstavka (za koju kategoriju se veze)

Ja bih znao uraditi npr.

SELECT COUNT(*) as nesto FROM stavke

Ali kako cu da prebroji, a da znam kojoj kategoriji pripada, posto mi je neophodno to.

2.) Ako imam kategoriju glavnu i podkategorije. I ako recimo neka stavka ili nesto drugo pripada u dvije kategorije, kad listam stavke iz glavne kategorije, kako da mi se ne ponavlja dva puta, vec samo jednom.

Hvala
[ bogdan.kecman @ 11.01.2009. 18:17 ] @
kako si postavio pitanje, nije ni cudo sto ne mozes da nadjes odgovor, nista te pod milim bogom nisam razumeo sta si hteo da pitas.... al evo da probam da nagadjam ...

oces broj kategorija?
- select count(*) from kategorije;

oces broj kategorija za neku stavku
- select count(*) from kategorije where idstavka=xyz;

oces obroj kategorija po stavkama (da rezultat sadrzi idstavke, brojkategorija)
- select idstavka, count(*) as brojkategorija from kategorije group by idstavka

Citat:

Ako imam kategoriju glavnu i podkategorije
...
neka stavka ili nesto drugo pripada u dvije kategorije


sta ti je "glavna" kategorija a sta "podkategorija" u 2 tabele koje si naveo imas "stavku" i "kategoriju" gde jedna stavka moze da ima vise kategorija ali jedna kategorija moze da ima vezu samo sa jednom stavkom dakle pitanje "neka stavka ili nesto drugo pripada u dve kategorije" NE MOZE sa tabelama koje si naveo, sa tabelama koje si naveo moze "obrnuto"

Citat:

- idstavka (za koju kategoriju se veze)


ajde procitaj ovo jos jednom pa razmisli sta je stavka, sta kategorija a sta podkategorija ?!

[ _CaRtMan_ @ 11.01.2009. 20:01 ] @
Prvo sam skontao.
Mozes li mi odgovoriti na drugo pitanje, evo sad ce mozda ovo jasnije biti:

- Posto kategorije i podkategorije se nalaze u istoj tabeli (rjeseno sa kolonom parent da razlikujem)
Kad kliknem na prikaz svih stvari u kategorije neke mi duplo prikaze. Moze li se kako rjesiti da ne prikazuje dva puta ili vise. Recimo u deset podkategorijama se nalazi nesto i kad budem listao sve iz glavne kategorije 10 puta ce mi se ponoviti to iz podkategorija tih.


[ bogdan.kecman @ 11.01.2009. 20:23 ] @
Citat:

Posto kategorije i podkategorije se nalaze u istoj tabeli (rjeseno sa kolonom parent da razlikujem)


A tu kolonu "parent" smo mi trebali da vidimo u prstenu ili ? probaj da napises pitanje "kompletno" ako zelis kompletan odgovor :)

Citat:

Kad kliknem na prikaz svih stvari u kategorije neke mi duplo prikaze. Moze li se kako rjesiti da ne prikazuje dva puta ili vise. Recimo u deset podkategorijama se nalazi nesto i kad budem listao sve iz glavne kategorije 10 puta ce mi se ponoviti to iz podkategorija tih.


kad kliknes ?!?!? ne znam gde to u mysql-u kliknes da ti nesto prikaze? mislis, kad izvrsis neki upit on ti vrati nesto duplo? koji upit? kako izgleda tabela (ali stvarno kako tabela izgleda - tj sta vrati "show create table t1" a ne odokativno kako izgleda tabela)?

da mu ga dam opet po vatanju za prsten (imas srece te sam se ozenio prosle godine pa imam prsten), i da probam da nagadjam sta pitas ...

ako zamislimo da u tabeli kategorija postoji i polje parent koje je link na idkategorija i koje oznacava "id nadkategorije" te da onda imamo

- idkategorija [PK]
- nazivkategorija
- idstavka
- parent [FK, idkategorija]

sta je sada pitanje ?? :D

necemo da se u upitu tipa: select idkategorija, .... from kategorija where ...
u rezultatu pojavi dva puta isti idkategorija ?

tome sluzi cuveni DISTINCT:
Citat:

The ALL, DISTINCT, and DISTINCTROW options specify whether duplicate rows should be returned. If none of these options are given, the default is ALL (all matching rows are returned). DISTINCT and DISTINCTROW are synonyms and specify removal of duplicate rows from the result set.


el ti ovo resava problem ili mi se javilo pogresno?