Versio

Apart limiet voor elke waarde

Overzicht Reageren

Herjan -

Herjan -

11/10/2007 20:15:00
Quote Anchor link
Ja, vage topictitel.

Ik ben momenteel bezig aan een nieuwssysteem met meerdere categorieën. Elk artikel kan in één categorie tegelijk zitten. Tot zover eenvoudig.

Nu wil ik graag een overzichtje met uit elke categorie de laatste vijf nieuwsberichten. Prima. Maar wel graag met één query. Ik begon zelf heel enthousiast met het volgende:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
SELECT n.news_id, n.news_title, n.cat_id
FROM news n
LEFT JOIN categories c ON c.cat_id = n.cat_id
ORDER BY n.cat_id, n.news_date


En toen liep ik vast. Ik wil nu eigenlijk voor elk cat_id een soort groep met een eigen limit. Ik wil namelijk van elke waarde voor cat_id vijf rijen hebben.

Kan iemand me hiermee helpen? Is het bijvoorbeeld mogelijk de group-functie te gebruiken met een trucje?
Gewijzigd op 01/01/1970 01:00:00 door Herjan -
 
PHP hulp

PHP hulp

23/05/2012 21:22:56
Gesponsorde koppelingen:
 
Frank -

Frank -

12/10/2007 00:31:00
Quote Anchor link
Dit zul je met een sub-query moeten doen, maar omdat je een LIMIT nodig hebt, gaat dat niet lukken met MySQL. Die staat geen LIMIT toe in een sub-query...

Wanneer je MySQL 5 gebruikt, kun je stored procedure schrijven en daarin alles afhandelen, anders zul je gewoon 5 aparte queries naar de database moeten sturen met iedere keer een andere voorwaarde.

Ps. GROUP BY is geen oplossing, je wilt namelijk details van records in een groep opvragen. En dat gaat niet, met GROUP BY vraag je details van de hele groep op.
 
Herjan -

Herjan -

12/10/2007 17:44:00
Quote Anchor link
Ok, het makkelijkste in MySQL is dus om gewoon een aantal losse queries uitvoeren, per categorie eentje. Jammer, ik wilde het graag in één query doen ;)
 



Overzicht Reageren

Get Adobe Flash player