[MySQL] kan dit in 1 query?

Pagina: 1
Acties:

  • Rannasha
  • Registratie: Januari 2002
  • Laatst online: 19-08 14:11

Rannasha

Does not compute.

Topicstarter
Ik zit met het volgende, ik heb een tabel met nieuwsberichten die in verschillende categorien zijn opgedeeld. Voor een overzichtpagina wil ik per categorie de 5 laatste berichten opvragen. Dit kan als volgt:

code:
1
SELECT DISTINCT category FROM posts


waarmee ik een lijstje van alle categorien in de tabel krijg, daar loop ik doorheen met

code:
1
SELECT bla1,bla2,blaat FROM posts WHERE category='$cat' ORDER BY postid DESC LIMIT 5


Dit werkt in principe, maar ik vraag me af of dit geheel in 1 query kan voor een beter performance. In de MySQL docs kan ik het zo snel niet vinden.

|| Vierkant voor Wiskunde ||


Verwijderd

Ik weet niet of MySQL het kent, maar zoek even op 'group by'.

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 21-08 18:29
Met group by krijg je alleen maar de resultaten van de aggregated functions en eventueel de gegevens van een willekeurige rij.

  • Rannasha
  • Registratie: Januari 2002
  • Laatst online: 19-08 14:11

Rannasha

Does not compute.

Topicstarter
Verwijderd schreef op 23 September 2003 @ 22:13:
Ik weet niet of MySQL het kent, maar zoek even op 'group by'.
Heb ik gedaan, als ik group by gebruik krijg ik maar 1 rij per categorie terug. Of zie ik iets over het hoofd?

|| Vierkant voor Wiskunde ||


Verwijderd

Ik heb idd iets te snel gereageerd. De distinct en de order by maakten mij een beetje blind :)

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 21-08 18:29
Als het een drukbezochte site is zou je gewoon een geparsed resultaat kunnen bewaren, dan is de performance niet meer zo van belang. Overigens is MySQL vaak sneller in meerdere eenvoudige queries die hetzelfde doen dan in 1 heel ingewikkeld query.

  • Johnny
  • Registratie: December 2001
  • Laatst online: 21-08 11:56

Johnny

ondergewaardeerde internetguru

Species5618 schreef op 23 September 2003 @ 22:16:
[...]


Heb ik gedaan, als ik group by gebruik krijg ik maar 1 rij per categorie terug. Of zie ik iets over het hoofd?
Ja, deze query vraagt namelijk om maximaal 5 resultaten uit allemaal verschillende categorieen.

Aan de inhoud van de bovenstaande tekst kunnen geen rechten worden ontleend, tenzij dit expliciet in dit bericht is verwoord.


  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 21-08 18:29
Een hele vage ingeving: 5 keer dezelfde tabel joinen? En dan steeds on >datum en < datum. Het is geen uitgewerkt idee maar misschien kun je er wel iets mee. Je kunt ook een if() gebruiken en dan daarop sorteren. Al weet ik niet zeker of dat wel mag in MySQL.
Pagina: 1