SQL baze podataka - Sponzor: Baze-Podataka.net MySQL, MSSQL, Oracle, Access, ODBC. Ako imate problem brže i preciznije ćete dobiti odgovor ako priložite strukturu tabela ili skript koji kreira tabele i puni ih test podacima umesto što to problem opisujete samo rečima. Sponzor: Baze-Podataka.net - Blog o bazama podataka |
|
Alati teme | Način prikaza |
17. 04. 2007. | #11 |
VD IT Direktora
Invented the damn thing
Datum učlanjenja: 08.06.2005
Lokacija: Beograd
Poruke: 2.118
Hvala: 503
1.307 "Hvala" u 282 poruka
|
Al si ti zahtevan... U početnom postu nisi naglasio ni da ti treba rešenje za baze iz prošlog veka, ni da treba da radi brzo kao munja...
BTW, svaka čast za rešenje. Ja ga nisam ukapirao. |
17. 04. 2007. | #12 |
Goran Pilipović
Sir Write-a-Lot
|
sta ces, takav sam
Salim se, nije to sto mislis nego gledam cisto sta je bolje... ne znam da li sam ikada koristio ove IF ... THEN ... CASE u mysql-u, uvek su mi zvucali kao previse zahtevni pa sam izbegavao.
__________________
Goran Pilipović a.k.a. Ugly Fingers Bradley f.k.a. bluesman I don't always know what I'm talking about but I know I'm right! |
17. 04. 2007. | #13 |
profesionalac
Professional
Datum učlanjenja: 21.06.2005
Poruke: 294
Hvala: 93
525 "Hvala" u 19 poruka
|
Heh, za sada sam nakupio 2 porcije ćevapa i pivo. Ne bi mi palo na pamet da pokušavam to u životu da nije bilo te provokacije.
Što se tiče objašnjenja, od početka sam znao da moram po nečemu da grupišem, pa sam iz iskustva uradio trostruki inner join za tabelu b i gledao šta mogu sa tim da radim. Činilo mi se logičnim da poređam ID-eve od manjeg ka većim i da kreiram kolonu po kojoj će se vršiti dodatno grupisanje jer bih inače imao samo 3 reda. Postoje 3 varijante: sva 3 ista, prvi različit od druga 2 koja su ista i 3. slučaj. Na taj način mi je vrednost u 3. koloni u svakom grupisanju različita pa mogu da je izvučem. Na žalost, ne mogu da ilustrujem primerima jer nisam za svojim kompjuterom trenutno. Mogu tek za vikend napisati detaljan postupak ako nekog zanima. |
17. 04. 2007. | #14 |
Goran Pilipović
Sir Write-a-Lot
|
Najveci problem koji ja ovde vidim je nefleksibilnost. Sta ako pozelis umesto po 3 da izvuces 5 poslednjih... da li bi morao 5 inner join-ova?
__________________
Goran Pilipović a.k.a. Ugly Fingers Bradley f.k.a. bluesman I don't always know what I'm talking about but I know I'm right! |
17. 04. 2007. | #15 |
profesionalac
Professional
Datum učlanjenja: 21.06.2005
Poruke: 294
Hvala: 93
525 "Hvala" u 19 poruka
|
Naravno, ili subselect.
Poslednja izmena od BluesRocker : 17. 04. 2007. u 22:37. |
17. 04. 2007. | #16 |
Python Ambassador
Master
|
Blues ako želiš fleksibilnost onda prvo pokupi sve a_id-ove iz a:
Kôd:
select a_id from a; Kôd:
select a.*, b.b_id from a join b on a.a_id=b.a_id and b.a_id=$ZELJENI__A_ID order by b.b_id limit $ZELJENI_LIMIT; Naravno umesto jednog imaćeš n+1 upit, ali to je jedna od cena fleksibilnosti Ne bih napamet pričao o razlici u perfomansama između ova 2 načina - najbolje bi bilo da napraviš benchmarke za konkretne uslove i podatke koji te interesuju.
__________________
Python Ambassador of Serbia |
17. 04. 2007. | #17 |
old school
Professional
|
Evo da potvrdim da rjesenje radi i kod mene. Cevapi i pivo prvom prilikom! Ako hoces, mogu ti naruciti i preko donesi.com?
Ja nisam imao volje i zivaca da se detaljnije bacim na rjesavanje ovog zadatka, ali vjerujem da ne bih dosao do ovog rjesenja... Respect!
__________________
Blog: Baze podataka ------------------------ Oracle OCP DBA Oracle OCE SQL Expert Oracle OCP Developer Certified MySQL DBA |
18. 04. 2007. | #18 |
Goran Pilipović
Sir Write-a-Lot
|
U stvari, ono što je interesanto je da je ovo prilično česta potreba, čudno je da ne postoji lagano rešenje osim nekog restruktuiranja baze ili izvlačenja jednostavnih querija ali onda muljanje kroz kod.
__________________
Goran Pilipović a.k.a. Ugly Fingers Bradley f.k.a. bluesman I don't always know what I'm talking about but I know I'm right! |
18. 04. 2007. | #19 |
Ivan Dilber
Sir Write-a-Lot
|
pa ono, postoji subselect, to je lako resenje ukoliko postoji podrska u bazi...
__________________
Leadership is the art of getting people to want to do what you know must be done. |
18. 04. 2007. | #20 |
Banned
Knowledge base
Datum učlanjenja: 01.07.2005
Poruke: 1.598
Hvala: 206
140 "Hvala" u 89 poruka
|
inace subselect radi prilicno fino na novijim verzijama mysql-a nerazumem zasto ga izbegavati?
|
|
|
Slične teme | ||||
Tema | Početna poruka teme | Forum | Odgovori | Poslednja poruka |
Najgori SQL query na svetu | bluesman | SQL baze podataka - Sponzor: Baze-Podataka.net | 83 | 20. 12. 2011. 01:17 |
Id, kategorija - jedan query | Ivan | SQL baze podataka - Sponzor: Baze-Podataka.net | 4 | 13. 11. 2007. 03:09 |
spor query | ivanhoe | SQL baze podataka - Sponzor: Baze-Podataka.net | 1 | 31. 07. 2007. 19:47 |
Pisanje mysql query | bluesman | SQL baze podataka - Sponzor: Baze-Podataka.net | 30 | 05. 06. 2007. 12:53 |
mysql, php i unbuffered query | ivanhoe | SQL baze podataka - Sponzor: Baze-Podataka.net | 1 | 21. 07. 2006. 04:50 |