[linux] VYRIESENE: OT: pomoc s sql prikazom ...
Oskar Stolc
stolc na intrak.tuke.sk
Čtvrtek Srpen 16 09:43:18 CEST 2001
> Co takto...
>
> Select distinct(meno) from tabulka where jedlo='maslo' and 'paradajka';
>
Klauzula "jedlo = 'maslo' and jedlo = 'paradajka'" ti navrati nic,
lebo neexistuje taky riadok, kde by malo jedlo naraz hodnotu maslo
aj paradajka...
Inac uz som to vyriesil... (uvediet pre tri hladane jedla:)
- prvy sposob je robit prieniky:
select meno from tabulka where jedlo = 'maslo'
intersect
select meno from tabulka where jedlo = 'chlieb'
intersect
select meno from tabulka where jedlo = 'paradajka' ;
Skriptom si viem vygenerovat jednotlive selecty, ale toto riesenie
sa mi nepaci, lebo by bol vysledny select zbytocne dlhy a intuicia
mi hovori, ze aj neefektivny...
- druhy sposob zavana rekurziou:
select meno from tabulka where jedlo = 'maslo' and meno in (
select meno from tabulka where jedlo = 'chlieb' and meno in (
select meno from tabulka where jedlo = 'paradajka'
)
) ;
v tomto pripade vysledny select tiez nevyzera najjednoduchsie, a
ako sa tu spominalo subselecty su vraj neefektivne...
- treti sposob mi poslal kolega z prace :-)
1 select meno from tabulka where jedlo in (
2 'maslo', 'chlieb', 'paradajka'
3 ) group by meno having count (*) =
4 _pocet_hladanych_retazcov_
v tomto pripate je _pocet_hladanych_retazcov_ = 3
Takyto select pomocou skriptu vygenerujem najjednoduchsie (meni sa
len druhy a 4 riadok...
Dakujem kazdemu za radu.
Oskar
Další informace o konferenci linux