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