PDA

Pogčedajte punu verziju : Id, kategorija - jedan query


Ivan
12. 11. 2007., 20:19
Imam sledecu strukturu (mysql db):

id | kategorija | ...

Potreban mi je query koji ce da mi vrati sve zapise gde je kategorija jednaka kategoriji zapisa odredjenog id-a kojeg dobijam externo. I to bez subselect query-a.

Ako nekome nije jasno sta mi treba evo primera:

id| kategorija
-------------
1 | kruska
2 | jabuka
3 | jabuka
4 | banana
5 | malina

I ja sada imam id = 2, i hocu da na osnovu toga izvucem sve zapise gde je kategorija jabuka (tj zapise gde je id 2 i 3). Ovo moze lako sa dva kverija ili sa subselectom ali kako sa jednim kverijem (bez subselect)?

jablan
12. 11. 2007., 20:28
select * from tabela t1
inner join tabela t2 on t1.kategorija = t2.kategorija
where t2.id = :id

Dejan Topalovic
12. 11. 2007., 21:03
@Ivan: Ako ti se za razlicite ID-ove ponavlja kategorija, onda nisi dobro dizajnirao strukturu tabela. Za svaki slucaj - ukoliko planiras dalje razvijati aplikacije, onda sto prije promijeni strukturu cuvanja podataka.

Npr. u ovom slucaju bi trebao imati neku tabelu za kategorije i onda kazes:
SELECT id FROM kategorije WHERE kategorija = 'jabuka';
i onda mozes da radis sa tim ID sta zelis ... ili da efikasno tu tabelu koristis pri joinu sa drugim tabelama...

Ivan
12. 11. 2007., 21:54
Hvala na sugestiji, ova struktura nije moja vec samo zelim da malo ubrzam stvari u istoj.

Blood
13. 11. 2007., 03:09
SELECT * FROM tabela1 AS t1, tabela2 AS t2 WHERE t1.id=$id AND t2.kategorija = t1.kategorija;

Samo ti ne bih preporucio * vec samo ono sto ti treba, tipa: t2.kategorija, t1.ime itd itd...