MySQL - Pomoć sa upitom

poruka: 34
|
čitano: 5.820
|
moderatori: XXX-Man, vincimus
+/- sve poruke
ravni prikaz
starije poruke gore
17 godina
neaktivan
offline
Re: MySQL - Pomoć sa upitom
Blakc kaže...

evo s joinom... nije bas lijepo, ali bas me zanima kako ce radit.. ako ti se da izvrtit onaj test sa puno podataka

 

 

select distinct apartman.apartmanId

from apartman left join zauzetost on zauzetost.apartmanid = apartman.apartmainid and ('1/12/2011' <= do AND od <= '1/22/2011')

where do is null

 

 

dakle malo objasnjenje kako radi bi vjerojatno bilo korisno... kaze ovako.. uzmi sve apartmane i joinaj sa nekim i zauzetosti s kojim se sijece... ako ne mozes nac takav onda radi left joina joinaj sa null

 

e sad.. svi apartmani koji su joinani sa null nemaju niti jednu rezervaciju u tom terminu inace bi se s njom joinali... pa where do is null filtrira slobodne apartmane

 

Sada daje točne rezultate na malom i velikom uzorku, ali se tvoj join vrti 97,5ms, a moj/mrkačev subselect 35,1ms. To je ~300% sporije za JOIN na 10k apartmana i 120k rezervacija. Tako reagira SQL Server 2008R2. Možda bi MySQL bio drugačiji.

 

17 godina
offline
MySQL - Pomoć sa upitom

Implementirano na Mrkačev/Naxeemov nacin. Sljaka sve uredno.

 

Inace, preporucio bih vam SQLYog ako se borite obicnim SQL upitima protiv baza. Sa ovom aplikacijom sam imao upite gdje sam izvlacio u jednom upitu podatke iz desetak tablica koje su u nekim najblesavijim relacijama. Da nije SQLYoga vjerovatno bih poslao klijenta u tri lijepa, zahvalio se i od*ebao posao.

Mentalist je moj idol...
 
0 0 hvala 0
17 godina
offline
MySQL - Pomoć sa upitom

Za selekciju i vraćanje rezultata između dva datuma koristi se operator BETWEEN

 

U ovome slučaju traže se rezultati koji nisu između ta dva datuma, dakle NOT BETWEEN  :)

Lighthttpd+MongoDB+PHP5
Poruka je uređivana zadnji put uto 10.5.2011 1:38 (Nix).
Moj PC  
0 0 hvala 0
17 godina
neaktivan
offline
Re: MySQL - Pomoć sa upitom
Nix kaže...

Za selekciju i vraćanje rezultata između dva datuma koristi se operator BEETWEN

To svatko zna, ali ti tek trebaš napisati traženi upit. :)

Nova poruka
E-mail:
Lozinka:
 
vrh stranice