Hallo allemaal,
Ben bezig met een forum en natuurlijk gaat dat niet probleemloos. Het lijkt zo simpel, en toch lukt het niet. Volgens mij kijk ik ergens keihard overheen.
Wat ik probeer te bereiken: per forumcategorie wil ik een maximum aantal topics selecteren. Uiteraard kan dat met meerdere query's (eerst een query om alle forumcategorieën te selecteren, daarna voor elke forumcategorie een query voor een max aantal topics), maar het liefst doe ik dat in één query. Als dat kan natuurlijk, en volgens mij moet dat kunnen.
Ik heb in totaal drie tabellen: fora, topics en posts. In dit geval heb ik dus alleen fora en topics nodig. De tabel topics heeft een FK forum_id, die vanzelfsprekend naar de tabel fora verwijst.
Doel is dus om per forum_id een maximum aantal rijen (laten we zeggen, een stuk of 10) te selecteren, gesorteerd op datum. GROUP BY is niet de oplossing volgens mij, die is alleen voor aggregate functions bedoeld. ORDER BY komt er dichter bij in de buurt, maar dan ben je er nog niet: hoe zorg je er voor dat-ie er max 10 pakt?
Ik heb het idee dat de oplossing echt doodsimpel is. Ik zie het gewoon niet!
Bij voorbaat dank
Ben bezig met een forum en natuurlijk gaat dat niet probleemloos. Het lijkt zo simpel, en toch lukt het niet. Volgens mij kijk ik ergens keihard overheen.
Wat ik probeer te bereiken: per forumcategorie wil ik een maximum aantal topics selecteren. Uiteraard kan dat met meerdere query's (eerst een query om alle forumcategorieën te selecteren, daarna voor elke forumcategorie een query voor een max aantal topics), maar het liefst doe ik dat in één query. Als dat kan natuurlijk, en volgens mij moet dat kunnen.
Ik heb in totaal drie tabellen: fora, topics en posts. In dit geval heb ik dus alleen fora en topics nodig. De tabel topics heeft een FK forum_id, die vanzelfsprekend naar de tabel fora verwijst.
Doel is dus om per forum_id een maximum aantal rijen (laten we zeggen, een stuk of 10) te selecteren, gesorteerd op datum. GROUP BY is niet de oplossing volgens mij, die is alleen voor aggregate functions bedoeld. ORDER BY komt er dichter bij in de buurt, maar dan ben je er nog niet: hoe zorg je er voor dat-ie er max 10 pakt?
Ik heb het idee dat de oplossing echt doodsimpel is. Ik zie het gewoon niet!
Bij voorbaat dank