wynik z podzapytania MySQL
Maciek - 19-02-2007 00:09
wynik z podzapytania MySQL
witam. mam zapytanie, w ktorym to samo podzapytanie wystepuje kilka razy, czy da sie jakos przy pierwszym podzapytaniu zapisac wynik i pozniej juz z niego korzystac w warunku where tak zeby nie robic tego samego podzapytania kilka razy? oto przyklad:
select * from tab1 where tab1.kol1=(select max(kol1) from tab2 where tab2.jakies_id=tab1.jakies_id) && tab1.kol2!=(select max(kol1) from tab2 where tab2.jakies_id=tab1.jakies_id)
Pozdrawiam.
-- Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
Maciek Dobrzanski - 19-02-2007 00:09
In news:77fa.0000007b.45d86e42@newsgate.onet.pl, Maciek <mangodWYTNIJTO@poczta.onet.pl> typed:
> mam zapytanie, w ktorym to samo podzapytanie wystepuje kilka razy, > czy da sie jakos przy pierwszym podzapytaniu zapisac wynik i pozniej > juz z niego korzystac w warunku where tak zeby nie robic tego samego > podzapytania kilka razy?
SELECT * FROM t1 WHERE t1.pole1 = (@v := (SELECT max(id) FROM t2)) AND t1.pole2 != @v
Maciek
=?ISO-8859-2?Q?Pawe=B3_Matejski?= - 19-02-2007 00:09
Maciek wrote: > witam. > mam zapytanie, w ktorym to samo podzapytanie wystepuje kilka razy, czy da sie > jakos przy pierwszym podzapytaniu zapisac wynik i pozniej juz z niego korzystac > w warunku where tak zeby nie robic tego samego podzapytania kilka razy? oto > przyklad: > > select * from tab1 where tab1.kol1=(select max(kol1) from tab2 where > tab2.jakies_id=tab1.jakies_id) && tab1.kol2!=(select max(kol1) from tab2 where > tab2.jakies_id=tab1.jakies_id)
W tym wypadku prosto:
select * from tab1 where tab1.kol1=(select max(kol1) from tab2 where tab2.jakies_id=tab1.jakies_id) && tab1.kol2!=tab1.kol1
-- P.M.
Maciek - 19-02-2007 00:09
> In news:77fa.0000007b.45d86e42@newsgate.onet.pl, > Maciek <mangodWYTNIJTO@poczta.onet.pl> typed: > > > mam zapytanie, w ktorym to samo podzapytanie wystepuje kilka razy, > > czy da sie jakos przy pierwszym podzapytaniu zapisac wynik i pozniej > > juz z niego korzystac w warunku where tak zeby nie robic tego samego > > podzapytania kilka razy? > > SELECT * FROM t1 WHERE t1.pole1 = (@v := (SELECT max(id) FROM t2)) AND > t1.pole2 != @v >
dzieki za odpowiedz. ale mam pytanko. w dokumentacji mysql jest napisane, ze podstawowa zasada jest nieuzywanie tej instrukcji (czyli user-defined variables) , jesli dana zmienna jest odczytywana kilka razy w tym samym zapytaniu, bo nie znana jest kolejnosc wykonywania instrukcji. czy jest jakas mozliwosc, zeby na 100% byla wpisywana odpowiednia wartosc? bo dla mojego zapytania nie zadzialal sposob ze stworzeniem zmiennej, wyglada on tak:
SELECT * FROM szkol,podst WHERE szkol.rprp_id=podst.rprp_id && (((select min(rprpsd_date) from dni where rprps_id=szkol.rprps_id) >= "2007-02-19" && (select min(rprpsd_date) from dni where rprps_id=szkol.rprps_id) <= "2007-02-20") || ((select max(rprpsd_date) from dni where rprps_id=szkol.rprps_id) >= "2007-02-19" && (select max(rprpsd_date) from dni where rprps_id=szkol.rprps_id) <= "2007-02-20") || ((select min(rprpsd_date) from dni where rprps_id=szkol.rprps_id) <= "2007-02-19" && (select max(rprpsd_date) from dni where rprps_id=szkol.rprps_id) >= "2007-02-20"))
Pozdrawiam.
-- Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
[mysql] =?ISO-8859-2?Q?Za=E6mienie=2E=2E=2E_jak_wy=B6wietli=E6?==?ISO-8859-2?Q?=2E=2E=2E?=
[mysql] =?ISO-8859-2?Q?wielko=B6=E6_bazy_a_stabilno=B6=E6=2C?==?ISO-8859-2?Q?_podzia=B3_du=BFej_bazy_a_powi=B1zania_tabel?=
[MySQL] =?ISO-8859-2?Q?Wy=B6wietlenie_kolejnej_pozycji=2C_?==?ISO-8859-2?Q?jak=B1_mia=B3by_dany_rekord=2C_gdybym_czyta=B3 _?==?ISO-8859-2?Q?wg_konkretnych_kryteri=F3w=2E_Da_si=EA_=3F?=
[mysql 4.0.x] przenoszenie kolum =?ISO-8859-2?Q?mi=EAdzy_bazam?==?ISO-8859-2?Q?i_cd_=2E=2E=2E_?=
[MySQL] =?ISO-8859-2?Q?z=B3=B1czenie_tabeli_u=BFytkownik_i?==?ISO-8859-2?Q?_zdj=EAcia_z_wyborem_zdj=EAcia_domy=B6lnego?=
[MySQL] Jak =?ISO-8859-2?Q?wpisa=E6_do_tabeli_pozycje_dl?==?ISO-8859-2?Q?a_wierszy_gdybym_te_wiersze_wybiera=B3_w_ok?== ?ISO-8859-2?Q?re=B6lonej_kolejno=B6ci_=3F?=
Gdzie MySQL 4.1, a gdzie 5.0?
[MySQL 4.0...4.1] zabezpieczenie przed =?ISO-8859-2?Q?jednoczesn?==?ISO-8859-2?Q?=B1_edycj=B1?=
[MS SQL] "set names" (mySQL) w MS SQL
MySQL - jak =?ISO-8859-2?Q?wyeksportowa=E6_zawarto=B6=E6_wie?==?ISO-8859-2?Q?lkiej_tabeli?=
zanotowane.pldoc.pisz.plpdf.pisz.platanvarne633.opx.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|