mysql a skladani dotazu

Petr Adámek petr.adamek na bilysklep.cz
Úterý Listopad 14 00:32:10 CET 2000


> Poradi nekdo, kde mam syntaktickou chybu?
> Pouzivam MySql na Linuxu
>
> SELECT jmeno FROM uzivatele WHERE
> c_uziv = (select c_uziv from pripojeni where session_id like 'neco');

Z hlavy si nejsem jisty, ale nemusi to byt

SELECT jmeno FROM uzivatele WHERE
 c_uziv IN (select c_uziv from pripojeni where session_id like 'neco');

?

> pravdepodobne bude chybka nekde v te zavorce, protoze oba dotazy:
> SELECT jmeno FROM uzivatele WHERE c_uziv = 'neco';
> select c_uziv from pripojeni where sess_id like 'neco';
>
> samosastatne pracuji dobre. Nema MySQL nejaky odklon od standartu?
> jak v nem udelat poddotaz.

Ma odklon od standardu - v soucasne dobe stabilni verze MySQL vnorene dotazy
NEUMI. Podpora vnorenych selectu je planovana v nejblizsi dobe.
Reseni:

a) pouzit neco jineho (Postgress)
b) pockat, az to bude umet
c) obejit se bez vnorenych dotazu, napr:

SELECT jmeno FROM uzivatele,pripojeni  WHERE uzivatele.c_uziv =
pripojeni.c_uziv  AND session_id like 'neco';

Zrovna vtomto pripade bych vnoreny select nepouzil ani kdyby ho MySQL umela.
Jinak podobnym zpusobem se daji obejit i slozitejsi dotazy bez vnorenych
selectu.

---
Petr Adámek, analytik, NWT Computer s.r.o.
http://www.nwt.cz/




Další informace o konferenci Databases