[SQL] query vraagje

Pagina: 1
Acties:

  • Martijn02
  • Registratie: September 2000
  • Laatst online: 09-09 11:37

Martijn02

/* No Comment */

Topicstarter
Ik heb een tabel met Items

[Item]
- ID
- categoryID
- title
- date
(rest is weggelaten, even niet belangrijk)

verder heb ik ook een tabel Gategory

[Category]
- ID
- name

Wat is wil is van alle categorien de laatste 3 items weergeven. Het liefste doe ik dat met een query, omdat ik anders voor iedere categorie een query moet doen.
code:
1
2
3
4
SELECT Category.name, Item.title
FROM Item
LEFT JOIN Category ON Item.categoryID = item.ID
ORDER BY Category.name ASC, Item.date DESC

Nu heb ik alle items, gesorteerd op categorienaam en op titel. Maar wat ik wil is per categorie alleen de laatste 3 ophalen.

Hoe doe ik dat? Ik zit te denken aan een groep-by, maar daarmee krijg je maar een resultaat per groep, en ik wil er 3. Iemand een idee?

Verwijderd

Je kan SELECT TOP 3 * FROM Item ... gebruiken, dan geeft ie dus maar 3 records terug! Zo kan je het ook bij de andere tabel doen :).

  • Martijn02
  • Registratie: September 2000
  • Laatst online: 09-09 11:37

Martijn02

/* No Comment */

Topicstarter
Sorry, het gaat om MySQL... geen TOP dus. wel limit, maar ik wil het juist in een query. snapje ?

  • whoami
  • Registratie: December 2000
  • Laatst online: 22:57
Wel, kan je die LIMIT niet in uw query schrijven misschien?

https://fgheysels.github.io/


  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Is het echt SQL of is het MySQL ?

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • WoutF
  • Registratie: Maart 2000
  • Laatst online: 22:08

WoutF

Hoofdredacteur
Op donderdag 14 februari 2002 22:03 schreef dusty het volgende:
Is het echt SQL of is het MySQL ?
Op donderdag 14 februari 2002 17:13 schreef Martijn02 het volgende:
Sorry, het gaat om MySQL... geen TOP dus. wel limit, maar ik wil het juist in een query. snapje ?
;)

  • Martijn02
  • Registratie: September 2000
  • Laatst online: 09-09 11:37

Martijn02

/* No Comment */

Topicstarter
Op donderdag 14 februari 2002 19:19 schreef whoami het volgende:
Wel, kan je die LIMIT niet in uw query schrijven misschien?
Jawel... maar ik wil van elke categorie 3 resultaten... als je limit gebruikt krijg je er maar 3 totaal volgens mij...

pseudo code
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
    $DB->query("SELECT ID, name
            FROM Category
            ORDER BY Category.name ASC");

foreach ($categorien as $category)
{    
    $DB->query("SELECT Item.title
            FROM Item
            WHERE categoryID = $category[ID]
            ORDER BY Item.date DESC         
            LIMIT 3");
    
    // Now print the stuff
}

Dit dus ongeveer... maar dan netjes in een query... :)
Pagina: 1