jeden select?

Karel Zak zakkr na zf.jcu.cz
Čtvrtek Říjen 4 11:23:17 CEST 2001


On Thu, Oct 04, 2001 at 10:23:44AM +0200, Ondrej Koala Vacha wrote:
> 
> Dobrý den,
> 
> mam následující dotaz.
> Mám doklady, které jsou v dvojici tabulek - hlavičky a řádky:
> 	create table doklady_hlavicky (
> 	id int(5),
> 	id_adresy int(5) # -> adresy.id
>  );
> 	create table doklady_radky (
> 	 id_doklady_hlavicky int(5),
> 	 id_veci int(5), # -> veci.id
> 	  mnozstvi int(5)
>   );
> 
> a tabulky s adresami a věcmi:
> 	create table adresy (id int(5), nazev char(10));
> 	create table veci (id int(5), nazev char(10));
> 
> Zjistit, jaké množství patří k jaké adrese je téměř trivální:
> 
> select sum(doklady_radky.mnozstvi)
> from adresy,veci,doklady_hlavicky,doklady_radky
> where
> doklady_hlavicky.id		= doklady_radky.id_doklady_hlavicky
> and doklady_hlavicky.id_adresy 	= adresy.id
> and doklady_radky.id_veci 	= veci.id
> group by adresy.id,veci.id
> 
> 
> A teď dotaz: kdybych měl ještě jednu dvojici tabulek dokladů,
> je možno tento dotaz udělat opět jedním selectem? Zkoušel jsem to,
> ale nepodařilo se mi ani dosáhnout funkčnosti, o rychlosti ani nemluvě.

 Napada mne union, ale ten asi MySQL nema (tise prepokladam, ze je jedna 
o MySQL:-)

IMHO by bylo zajimavejsi zamyslet se nad tim, chci-li opravdu dve tabulky,
bez nejakeho vzajemneho vztahu a pritom s nima pracovat najednou.

> Samozřejmě se dá udělat pro každou tabulku dokladů jeden select,
> výsledky někam schovat a nakonec zobrazit.

 Ano, dva selecty do jedne tabulky a treti na poslani na klienta. 

		Karel

-- 
 Karel Zak  <zakkr na zf.jcu.cz>
 http://home.zf.jcu.cz/~zakkr/
 
 C, PostgreSQL, PHP, WWW, http://docs.linux.cz, http://mape.jcu.cz


Další informace o konferenci Databases