Archief - MySQL: Elke waarde v/e veld mag slechts één keer voorkomen

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

.kw

Legacy Member
Het volgende is nogal moeilijk te omschrijven.

Stel, je hebt een tabel met gebeurtenissen, bijvoorbeeld:
12 augustus van 21u tot 23u voor de vrouwen: Optreden van Marco Borsato op de markt

..., netjes verdeeld over volgende kolommen:
(- gebeurtenisid)
- datum: 12 augustus
- uren: van 21u tot 23u
- beschrijving: Optreden van Marco Borsato
- plaats: op de markt
- groepid: 1

Groepid verwijst naar een andere tabel: groepen. Die ziet eruit als volgt:
- groepid
- naam
Bijvoorbeeld: 1, de vrouwen

Nu wil ik van elke groep de eerstvolgende gebeurtenis tonen op een pagina. Dus ORDER BY datum, maar wat als er twee gebeurtenissen gepland zijn?

killgore

Legacy Member
SELECT * FROM gebeurtenissen ge LEFT JOIN groep gr ON ge.groepid=gr.groepid GROUP BY ge.groepid ORDER BY ge.datum

* vervange door velde da gij wilt

.kw

Legacy Member
Het is nogal simpel blijkbaar. Het wordt zo te zien tijd dat ik een boek lees over MySQL. :$

Ik denk wel dat het nu werkt, maar hoe sla je best een datum in de toekomst op? Nu was dat voorlopig gewoon varchar(30) met "28 augustus" of zo in, maar dan kan je daarop niet ordenen. Dus hoe sla je best een datum die nog moet komen op?

RpR

Legacy Member
.kw zei:
Het is nogal simpel blijkbaar. Het wordt zo te zien tijd dat ik een boek lees over MySQL. :$

Ik denk wel dat het nu werkt, maar hoe sla je best een datum in de toekomst op? Nu was dat voorlopig gewoon varchar(30) met "28 augustus" of zo in, maar dan kan je daarop niet ordenen. Dus hoe sla je best een datum die nog moet komen op?
timestamp

Obliv`

Legacy Member
.kw zei:
Nu wil ik van elke groep de eerstvolgende gebeurtenis tonen op een pagina. Dus ORDER BY datum, maar wat als er twee gebeurtenissen gepland zijn?

nu vraagt gij 2 keer bijna hetzelfde op 2 dagen.

doe inderdaad uw sql boek eens open en doe zelf ook wa moeite..?

dJeez

Legacy Member
Een datum sla je uiteraard best op in een datum (DATE, DATETIME) veld. Waarom zouden die veldtypes er anders zijn?

Je gebruikt echter beter geen TIMESTAMP in MySQL, aangezien daar wat ongewenste zijeffecten bij kunnen zijn (dat veldtype is wel uitermate geschikt om vb. de creatiedatum en datum van laatste wijziging van een record in bij te houden).
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan