Select z databazi s relaci 1:N
Jan Havlicek
havlicek na vse.cz
Úterý Prosinec 11 09:13:24 CET 2001
Poslyste cetl jste muj prispevek ze 7.12.? Puvodni zadani jsem na MySQL
vyresil, a dokonce to neni nijak zvlast slozite.
Honza
Zdeněk Böhm wrote:
>
> Zdravim,
>
> tak jsem do toho pres vikend trochu vrtal, ale kloudneho vysledku jsem se
> nedobral. Bud Vami popisovane moznosti Mysql skutecne nema, nebo ja jsem
> uplny databazovy trotl (hmm, bohuzel je tahle moznost pravdepodobnejsi :-)).
> Par konkretnich prikladu provedenych s databazi MySQL 3.23.36 (dival jsem se
> do changelogu verze 3.23.39, ale nic zasadniho, co by mi pomohlo tam
> nepribylo)
>
> nejprve co mame vlastne v tabulkach:
> SELECT Table1.Id, Table2.xxx FROM Table1, Table2 WHERE
> Table1.Id=Table2.Table1_Id
> 1 1
> 1 2
> 1 3
> 2 2
> 2 3
> 3 1
> pridame "filtr" na pole xxx, ktere jsou rovny 1
> SELECT Table1.Id, Table2.xxx FROM Table1, Table2 WHERE
> Table1.Id=Table2.Table1_Id AND Table2.xxx<>1
> 1 2
> 1 3
> 2 2
> 2 3
> to je predpokladany vysledek tohoto dotazu, nicmene potrebuji docilit toho,
> aby vysledek dotazu byl nasledujici:
> 2 2
> 2 3
> dotaz s pouzitim LEFT OUTER JOIN vsak dela presny opak, prida do vysledku
> zaznamy, ktere nechci (tak jak podle dokumentace ma).
> SELECT Table1.Id, Table2.xxx FROM Table1 LEFT OUTER JOIN Table2 ON
> Table1.Id=Table2.Table1_Id AND Table2.xxx<>1
> 1 2
> 1 3
> 2 2
> 2 3
> 3 NULL
>
> S pozdravem Zdenek Bohm
--
<PRE> _______ ____
\___ | | |
Jan Havlicek _ \ | _ \ /
Vysoka Skola Ekonomicka |-| _\_| |__|_|__O__||__B<
University of Economics |-|---| +++ __________|)
Prague CZ |-| | ++ ______________|)
E-mail HAVLICEK na VSE.CZ |=|_|___|___________________|==|
-( + )<>-|-|( + )--( + )--\\\
Keep smiling ---------------------------------
</PRE>
Další informace o konferenci Databases