[ milost @ 08.01.2001. 07:34 ] @
Rade li uopste ugnjezdeni upiti (mislim na SELECT ... u okviru drugog SELECT-a) u MySQL-u? Znam da ranije verzije to nisu podrzavale, ali zna li neko da li je to sada dostupno, i kako to radi? Hvala unapred... |
[ milost @ 08.01.2001. 07:34 ] @
[ Gojko Vujovic @ 08.01.2001. 14:22 ] @
Trenutno ne rade ali su na to-do listi za sledecu verziju ili neku skorasnju uglavnom. Subselect je verovatno najvise zamerana stvar MySQL-u.
Zasto do sada nije implementirano? Jednostavno - ceo MySQL je pravljen da radi izuzetno brzo i sve je optimizovano koliko se moglo. Subselect dosta usporava rad i treba ga sto manje koristiti. Sve se moze postici join-ovima, to je barem lako. Razmisli malo. Ako ti treba primer reci cu ti ali ko zna kako radi left join znace i ovo da resi sigurno. Tako da subselect ostaje uglavnom nepotreban i prespor. Mozda ce cak i kad ga implementiraju biti neka vrsta join-a jer sigurno nece dozvoliti da im nesto tako uspori ovako brzu bazu ![]() [ milost @ 10.01.2001. 08:48 ] @
Citat: Gojko wrote: Jednostavno - ceo MySQL je pravljen da radi izuzetno brzo i sve je optimizovano koliko se moglo. Subselect dosta usporava rad i treba ga sto manje koristiti. Sve se moze postici join-ovima, to je barem lako. Hvala na odgovoru, nego kad smo vec kod JOIN-a... Kakva su vam iskustva sa OUTHER JOIN-om? [ Gojko Vujovic @ 10.01.2001. 13:02 ] @
nema tu iskustva, znam kako se koristi. jel te zanima ?
[ milost @ 10.01.2001. 14:06 ] @
Citat: Gojko wrote: nema tu iskustva, znam kako se koristi. jel te zanima ? Hvala, za sada mi samo treba potvrda da to sljaka bez problema (sto naravno nije cudno za MySQL ![]() Ovde se lozimo neko vreme da prebacimo neke stvari sa Oracle-a, pa da vidimo ko je brzi ![]() [ Gojko Vujovic @ 10.01.2001. 18:00 ] @
Nemoj se zahvaljivati molim te nema potrebe..
![]() A sto se tice brzine, take a look: http://www.mysql.com/information/benchmarks.html [ naum @ 25.04.2001. 10:55 ] @
Citat: Gojko wrote: Sve se moze postici join-ovima, to je barem lako. Razmisli malo. Ako ti treba primer reci cu ti ali ko zna kako radi left join znace i ovo da resi sigurno. Tako da subselect ostaje uglavnom nepotreban i prespor. Mozda ce cak i kad ga implementiraju biti neka vrsta join-a jer sigurno nece dozvoliti da im nesto tako uspori ovako brzu bazu :) ne moze... podupiti sluze za stvari tipa: DELETE FROM user WHERE user_id in (SELECT user_id_user FROM user_group WHERE group_id_group = 5); [Ovu poruku je menjao naum dana 04-25-2001 u 10:56 AM GMT] [ tOwk @ 14.05.2001. 21:56 ] @
PostgreSQLd - mogu ugnjezdeni upiti, medjutim mnogi kazu da je sporiji od MySQL... Imam ih oba instalirana, ali nisam poredio brzine :)
Zasto koristiti MySQL kada postoji i drugo opensource resenje... Usput, PostgreSQLd je Objektna baza (ne znam mnogo o tome, ali to je novija vrsta relacione baze, mozda ce ta informacija znaciti nekome ko se time bavi :). [ mire @ 16.05.2001. 14:50 ] @
MySql u novim verzijama ima tabele kod kojih rade transakcije.
Postgres treba da bude malo sporiji od mysql-a ali to mu ne smanjuje upotrebljivost. Ima nasledjivanje tabela, nizove kao polja i sl. ... [ mika @ 18.05.2001. 08:00 ] @
Kad smo vec kod topic-a... kako u MySQL-u da realizujem upit tipa: SELECT polje FROM tabela WHERE polje NOT IN (SELECT polje2 FROM tabela2); Pomagajte, ovo me mucilo nocas u p* materinu!!! ![]() P.S. Nije valjda da je nemoguce? ![]() [ milost @ 25.05.2001. 11:27 ] @
Citat: mika je napisao: Kad smo vec kod topic-a... kako u MySQL-u da realizujem upit tipa: SELECT polje FROM tabela WHERE polje NOT IN (SELECT polje2 FROM tabela2); Pomagajte, ovo me mucilo nocas u p* materinu!!! :( P.S. Nije valjda da je nemoguce? :( A jel' mora bas u MySQL-u ? Iz, recimo, PHP-a ne bi bio neki problem... [ mire @ 25.05.2001. 18:13 ] @
npr. ovako: select tabela.polje from tabela left join tabela2 on tabela.polje=tabela2.polje2 where tabela2.polje is null; ovo je left join koji simulira subquery. ako nemas persistant database konekcije normalno pokrenes prvi upit, smestis rezultat u neku promenljivu (znam da ovo radi ali nisam ulazio dublje u tematiku) i pokrenes drugi upit. Ili mozes da se snadjes ako radis iz programskog jezika iz koga koristis mysql npr. da sve smestis u neku promenljivu tog jezika pa onda pokrenes drugi upit. Citat: mika je napisao: Kad smo vec kod topic-a... kako u MySQL-u da realizujem upit tipa: SELECT polje FROM tabela WHERE polje NOT IN (SELECT polje2 FROM tabela2); ![]() [ mika @ 28.05.2001. 08:23 ] @
Hvala ljudi.
Topic sam pregledao sa zakašnjenjem a za left join nisam znao, pravo da vam kažem. U stvari znao sam šta je ali ne i kako se koristi... U međuvremenu sam se snašao baš kao što je neko napisao u prethodnim postovima - u dve petlje, i to tako što u spoljašnjoj prihvatam rezultat prvog upita a u unutrašnjoj na osnovu tog rezultata "filtriram" drugi upit. Naravno, elegantnije je rešenje preko samo jednog upita. P.S. Koja je razlika između levog i desnog spajanja ??? [Ovu poruku je menjao mika dana 05-28-2001 u 08:28 AM GMT] Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|