Jak udelat JOIN?

"Zíka Aleš, Ing." Ales.Zika na pel.br.ds.mfcr.cz
Čtvrtek Únor 20 13:25:25 CET 2003


	Zdravim,

	masm naselduji strukturu (velmi zjednodusene(.
CREATE TABLE kmen (
	zavodnik INT,	-- jedinecny identifikator
	jmeno TEXT
);
CRETAE TABLE vt (
	zavodnik INT,
	vt CHAR(2),	-- vykonostni trida
	kategorie CHAR(5)	-- pro danou kategorii
);
CREATE TABLE vysledky (
	zavodnik INT,
	kategorie CHAR(5),
	vysledek NUMERIC(7,2)
);

	Zavodnik muze startovat ve vice katgoriich, v kazde s jinou VT, tedy
muze mit vic zaznamu v tabulce vt, ale taky tam nemusi mit zadny (jeste si
VT nevyjel)

CREATE VIEW zavodnik AS SELECT * FROM kmen
	NATURAL LEFT OUTER JOIN vt;

	Timhle vyjedu vsechny zavodniky vcetene jejich VT pro ruzne
kategorie.
	Jenze ted kdyz chci zkompletovat vysledky, tak

SELECT * FROM vysledky INNER JOIN zavodnik USING(zavodnik);

	tak mi to zavodniky, kteri maji vice VT vyjede nekolikrat, jednou
pro kazdou kategorii

SELECT * FROM vysledky NATURAL INNER JOIN zavodnik;

	mi zase pro zmenu vynecha zavodniky, kteri zadnou VT nemaji a

SELECT * FROM vysledky NATURAL LEFT OUTER JOIN zavodnik;

	mi sice vyjde vsechno a jednou, ale u zavodniku bez VT logicky chybi
jmeno.

	Samozrejme to jde udelat:

SELECT * FROM vysledky NATURAL INNER JOIN zavodnik
	NATURAL LEFT OUTER JOIN vt;

	ale ja bych rad vyuzil to existujici VIEW zavodnik.


	Jde to nejak spachat, aby JOIN pripojil zaznam s odpovidajici
kategorii a pokud ho nenajde, tak s NULL?


	Diky,
			Ales Zika
			Pelhrimov

			e-mail: Ales.Zika na pel.br.ds.mfcr.cz
				  Ales.Zika na seznam.cz
			SMS:    Ales.Zika na sms.underground.cz


Další informace o konferenci Test