Phorum.ro
Your Avatar Welcome to Phorum.ro!
If you haven't registered yet, click here!
Attention Visitor:
You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below.
Du-te înapoi   Phorum.ro > Web Design & Web Development > Baze de date > MS SQL

MS SQL Programand in Microsoft(tm) SQL Server.

Răspunde
 
Thread Tools Moduri de afișare
Vechi 27.03.2007   #1
Luxian
Spamofob
 
Luxian's Avatar
 
Data înregistrării: 26.06.2006
Locație: Timișoara
Mesaje: 382
Rep Power: 5
Luxian is on a distinguished road
Trimite un mesaj prin Yahoo pentru Luxian
Implicit Problema GROUP BY si ORDER BY

Se dau urmatoarele tabele:

albums:
  • albm_id (integer)
  • (...)
poze:
  • albm_id
  • data_upload (timestamp)
  • (...)
Eu vreau sa obtin primele "n" albume in functie de data in care s-a uploadat ultima poza in ele.

Problema pare aparent simpla:
Cod PHP:
$sql "
SELECT `albums`.* 
   FROM `albums`, `poze` 
   WHERE `poze`.`albm_id` = `albums`.`albm_id` 
   GROUP BY `poze`.`albm_id` 
   ORDER BY`poze`.`data_upload` DESC 
   LIMIT 0, $n"

Problema e ca nu pot sa le grupez dupa ce le sortez, si in cazul de fata sortarea nu mai are loc: albumele sunt afisate in ordinea in care sunt in baza de date.

Am cautat pe net si nu am gasit nici o solutie. Desi pe multe site-uri se sugera sa folosesc LEFT JOIN (...) ON (...), dar din pacate e cam complicat si nu am gasit nici un exemplu care sa-l inteleg.

As fi foarte recunoscator daca ati putea interveni cu o sugestie sau o solutie.

Multumesc anticipat!
__________________
www.luxian.ro | "Prieten e cel care te învață să pescuiești, nu cel care îți dă pește!"
Oo==oO | w210 owner
Luxian is offline   Reply With Quote
Sponsored Links
Vechi 27.03.2007   #2
nchipn
32-Bit Member
 
nchipn's Avatar
 
Data înregistrării: 20.11.2006
Locație: oradea
Mesaje: 194
Rep Power: 4
nchipn is on a distinguished road
Implicit

O intrebare : clauze " GROUP BY `poze`.`albm_id` " are vreun rost in interogare?
nchipn is offline   Reply With Quote
Vechi 27.03.2007   #3
Luxian
Spamofob
 
Luxian's Avatar
 
Data înregistrării: 26.06.2006
Locație: Timișoara
Mesaje: 382
Rep Power: 5
Luxian is on a distinguished road
Trimite un mesaj prin Yahoo pentru Luxian
Implicit

Citat:
În prealabil postat de nchipn
O intrebare : clauze " GROUP BY `poze`.`albm_id` " are vreun rost in interogare?
Da, ea poate fi inlocuita cu GROUP BY `albums`.`id`, dar este necesara, altfel interogarea ar returna de mai multe ori acelasi album (1 data pentru fiecare poza uploadata in el).

Eu pana la urma am rezolvat temporar renuntant la GROUP BY, dar e ceva mai incurcat scriptul, mai ales ca trebuie sa "simulez" si GROUP BY si LIMIT (care nu mai poate fi aplicat). Sper sa nu am surprize, mai am inca de testat.

Oricum, astept in continuare o solutie. Poate sa gaseste cineva mai priceput.

PS: LEFT JOIN ... ON ... nu cred ca e solutie, nu compatibil cu MySQL 4.0 si nu vreau sa am surprize cu eventualul host
__________________
www.luxian.ro | "Prieten e cel care te învață să pescuiești, nu cel care îți dă pește!"
Oo==oO | w210 owner
Luxian is offline   Reply With Quote
Vechi 02.12.2007   #4
potzo
8-Bit Member
 
Data înregistrării: 02.12.2007
Mesaje: 1
Rep Power: 3
potzo is on a distinguished road
Implicit Max As

Trbuie sa definesti ca si corespondenta pentru album cea mai recenta data dupa care sortezi dupa ea
Citat:
$sql = "
SELECT MAX(poze.data_upload) AS recent, `albums`.*
FROM `albums`, `poze`
WHERE `poze`.`albm_id` = `albums`.`albm_id`
GROUP BY `poze`.`albm_id`
ORDER BY recent DESC
LIMIT 0, $n";

Last edited by potzo; 02.12.2007 at 13:13:31.
potzo is offline   Reply With Quote
Răspunde


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Moduri de afișare

Reguli de postare
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Pornit
emoticoanele sunt Pornit
Codul [IMG] este Pornit
Codul HTML este Oprit

Sări la...


Ora este GMT +3. Ora este acum 13:45:23.


Rulează cu: vBulletin Version 3.8.4
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
Forum SEO by Zoints

XXXXXXXXXXXXXXXXXXX
Inactive Reminders By Icora Web Design