Ik ben een forumpje aan het programmeren en zit met een probleempje met betrekking tot de weergave van het overzicht.
Ik heb 1 tabel met berichten:
- id (integer)
- parent (integer, verwijst naar een ander id bij reactie, of is gelijk aan eigen id)
- auteur (integer, verwijst naar andere tabel)
- aangemaakt (datetime)
- gewijzigd (datetime)
- titel (varchar)
- inhoud (text)
Deze tabel bevat dus zowel oorspronkelijke berichten als reacties daarop. Wat ik wil is een overzicht van titel, auteur en het tijdstip van laatste reactie.
Zelf heb ik al een self-join geprobeerd, maar ik kom er niet helemaal uit:
select z.titel, z.auteur, r.aangemaakt from berichten z, berichten r where r.parent = z.id group by r.id order by r.aangemaakt desc
Mijn output momenteel:
Ik wil dus alleen de bovenste 2 regels hebben. Wat moet ik hiervoor veranderen aan mijn query? Ben zelf niet zo'n ster wat SQL betreft
Bij voorbaat dank.
Ik heb 1 tabel met berichten:
- id (integer)
- parent (integer, verwijst naar een ander id bij reactie, of is gelijk aan eigen id)
- auteur (integer, verwijst naar andere tabel)
- aangemaakt (datetime)
- gewijzigd (datetime)
- titel (varchar)
- inhoud (text)
Deze tabel bevat dus zowel oorspronkelijke berichten als reacties daarop. Wat ik wil is een overzicht van titel, auteur en het tijdstip van laatste reactie.
Zelf heb ik al een self-join geprobeerd, maar ik kom er niet helemaal uit:
select z.titel, z.auteur, r.aangemaakt from berichten z, berichten r where r.parent = z.id group by r.id order by r.aangemaakt desc
Mijn output momenteel:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
| mysql> select z.titel, z.inhoud, z.auteur, r.aangemaakt from berichten z, berichten r where r.parent = z.id group by r.id order by r.aangemaakt desc; +------------------+-----------------+--------+---------------------+ | titel | inhoud | auteur | aangemaakt | +------------------+-----------------+--------+---------------------+ | Andere topic | Ja ja :P | 1 | 2002-06-02 17:08:22 | | Dit is een test! | Zei ik toch? :P | 1 | 2002-06-02 16:56:13 | | Dit is een test! | Zei ik toch? :P | 1 | 2002-06-02 16:55:40 | +------------------+-----------------+--------+---------------------+ 3 rows in set (0.01 sec) mysql> |
Ik wil dus alleen de bovenste 2 regels hebben. Wat moet ik hiervoor veranderen aan mijn query? Ben zelf niet zo'n ster wat SQL betreft
Bij voorbaat dank.
Ask yourself if you are happy and then you cease to be.