[SQL] Group by -> geen order by :/

Pagina: 1
Acties:
  • 41 views sinds 30-01-2008

  • Tom
  • Registratie: Juni 1999
  • Niet online
Men heeft 2 queries:

code:
1
SELECT id FROM mz_gallery_data WHERE album='$id' ORDER BY ts LIMIT $q,$disp2


die haalt alle posts uit een soort fotoalbum eruit.. per pagina dmv de limit, met x records per pagina.
Maar, elk record heeft soms posts eraan gekoppeld, die zitten in een andere table, daarvoor zou ik in de loop een count() query moeten gooien (of los veldje in bovenstaande tabel, maar is niet echt netjes eigenlijk :P ).. werkt opzich prima, maar echt vooruit qua performance gaat t niet:

code:
1
2
3
4
SELECT count(*) FROM mz_posts WHERE site='mz' 
AND idthread='$idthread' 
AND type='gallery' 
AND active='1' AND del='0'


Die dus, en die zit in een loopje (dat 10 keer loopt normaal gesproken).

Hoe kan ik die combineren? zelf eigenlijk al vanalles geprobeerd maar mijn conclusie was dat het niet ging, tenzij je de volgorde wilt verneuken. Dit omdat je die order by niet kwijtkunt omdat je een group by gebruikt... maarja dan zit je met verkeerde volgorde :/

(MySQL spreken we dus over >:) )

[ Voor 0% gewijzigd door ACM op 15-08-2002 19:23 ]


  • Tom
  • Registratie: Juni 1999
  • Niet online
tja of die order by vergeten en alles in een array gooien en dan via PHP die array op de juiste volgorde gaan zetten, maar dat wordt me beetje teveel gedoe eigenlijk.. denk ook niet dat t daardoor sneller is (is los veld weer stuk makkelijker).. zeker niet omdat je dan alle records eruit moet halen (geloof ik)......

  • momania
  • Registratie: Mei 2000
  • Laatst online: 08:32

momania

iPhone 30! Bam!

Wat jij wil kan je waarschijnlijk wel met een "JOIN" af.
Zo kan je dan zegmaar "de ene tabel met alle voorkomens onder een voorwaarde uit een andere tabel er bij halen in je resultaat".
Probeer daar eens wat info over te zoeken of je het daarme wel kan oplossen.

Neem je whisky mee, is het te weinig... *zucht*


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

group by en order by kan je prima samen gebruiken hoor.
Zou iets als:
code:
1
2
3
4
5
6
7
select mz_gallery.id, count(*) 
from mz_gallery, mz_posts
where ms_gallery.id = mz_posts.gallery_id
AND etc
GROUP BY mz_gallery.id
ORDER BY mz_gallery.id
LIMIT 1, 10

  • Tom
  • Registratie: Juni 1999
  • Niet online
mmmm ok t begint ergens op te lijken..
wee tniet wat voor getallen die count nu teruggeeft maar ben al verder :D

tnx
wel vaag dat orderby/groupby nu wel samengaat :?

  • Tom
  • Registratie: Juni 1999
  • Niet online
mja te makkelijk... beetje laag niveau, u krijgt een OW
Pagina: 1

Dit topic is gesloten.