MySQL a zdanlive jednoduchej select
Jan Havlicek
havlicek na vse.cz
Pátek Květen 4 09:01:03 CEST 2001
Jan Vrana wrote:
>
> Krasny den,
>
> Mam tabulku v MySQL,tvorenou dvema sloupci p1 a p2 existuje vzdy unikatni
> zaznam pro kombinaci p1 a p2 ale p1 muze myt libovolne p2 a obracene.
>
> |p1 |p2|
> | 1 |2 |
> | 1 |1 |
> | 2 |1 |
> | 3 |2 |
> | 2 |2 |
> | 2 |1 |
> | 3 |1 |
> | 4 |2 |
> | 5 |2 |
> | 5 |1 |
> | 6 |1 |
> | 7 |2 |
>
> Potrebuju vypsat seznam vsech p1 ktere maji hodnotu v p2 '2' i '1', potom
> potrebuji vypsat seznam vsech p1 ktere maji hodnotu v p2 2 a nemaji hodnotu
> 1.
>
> Napadlo me neco jako
>
> SELECT p1 FROM table WHERE p2=1 AND p2=2 .... coz samozrejme nefunguje
>
> Nevite jak tento problem resit? Ja z toho zacinam uz cvokatet :-))
*** Nevim jestli jsem to dobre pochopil. Jak to vidim ja, tak to jsou
dva selecty, protoze ty podminky si muzou odporovat.
Takze to rozdelme:
Potrebuji vzechny hodnoty p1 z radku kde p2=2 nebo p2=1
pak by melo fungovat
select p1 from tabulka where p2=2 or p2=1;
melo by tusim fungovat tez:
select p1 from tabulka where p2 in (1,2);
Druhy problem je vybrat hodnoty p1 pro ktere plati ze p2=2 a zaroven
p1!=1
takze by melo fungovat:
select p1 from tabulka where p1!=1 and p2=2;
A kde je problem.
Dotaz
SELECT p1 FROM table WHERE p2=1 AND p2=2
ne ze by nefungoval, jen ho z principu nemuze splnit zadny zaznam,
proste protoze definitoricky 2!=1, a predpokadam ze v tomto pripade
nebudeme tvrdit ze 1=2 pro extremne vysoke hodnoty 1 :))
Honza
--
<PRE> _______ ____
\___ | | |
Jan Havlicek _ \ | _ \ /
Vysoka Skola Ekonomicka |-| _\_| |__|_|__O__||__B<
University of Economy |-|---| +++ __________|)
Prague CZ |-| | ++ ______________|)
E-mail HAVLICEK na VSE.CZ |=|_|___|___________________|==|
-( + )<>-|-|( + )--( + )--\\\
Keep smiling ---------------------------------
</PRE>
Další informace o konferenci Databases