[MySQL]Query vraagje

Pagina: 1
Acties:

  • Roeligan
  • Registratie: December 2001
  • Laatst online: 22-07-2025
Ik heb 2 tabellen:

User
Event

Een user kan meerdere events hebben. Nu wil ik een overzicht hebben van alle users met het meest actuele event. Let wel... het gaat om datum. Dus als ik gister 2 events heb ingevuld voor de 28e en de 30e en vandaag vul ik een event in voor de 29e moet hij het event voor de 29e laten zien wanneer het event voor de 28e gesloten is.

In mijn query doet ie het volgende event in de DB pakken en dat ik dus de 30e.
code:
1
2
3
4
5
6
7
8
select  e.date,
    e.time,
    e.eventName
from    user u, event e
where   u.userID = e.userID
and e.closed = 0
group by    u.userID
order by    e.date, e.time


Kan dit eigenlijk wel in 1 query :?

[ Voor 1% gewijzigd door Roeligan op 17-07-2003 11:35 . Reden: typo ]

A real man fears not mortality for it's death, he fears mortality for it's lack of life!
RatPack #814


  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Daar heb je in principe 2 query's of een subquery voor nodig.
Als je een nieuwe versie van MySQL hebt dan worden subquerys ondersteud heb ik begrepen.

Who is John Galt?


  • Dennis
  • Registratie: Februari 2001
  • Laatst online: 23:00
Als je nou ff je technisch ontwerp (velden van je tabel) erbij post gaat het een stuk makkelijker. Wat ik dus wil weten: wat is e.date en wat is e.time? In welke staat de datum dat je hem hebt ingevoerd en in welke staat de datum wanneer het evenement is :?

  • SPee
  • Registratie: Oktober 2001
  • Laatst online: 21:11
Dan moet je opgeven hoe hij de e.date (en e.time) moet ordenen. In dit geval oplopend.

Voor zover ik weet, zou die query het gewoon moeten doen.
Maar nu groepeer je dat per gebruiker. En komt het als
code:
1
2
3
4
5
gebruik1  28  12:00  eten
gebruik1  28  13:00  werken
gebruik1  29  12:00  eten
gebruik2  28  12:00  eten
...


Als je groepeert per dag dan krijg je
code:
1
2
3
4
5
gebruik1  28  12:00  eten
gebruik2  28  12:00  eten
gebruik1  28  12:00  werken
gebruik1  29  12:00  eten
...


Hierbij denk ik dat je tabel er zo uitziet:

code:
1
     User      1-----------------------*  Event

en e en u geeft hij aan in de from ( e = Event , u = User |:( )

let the past be the past.


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 00:45

Creepy

Tactical Espionage Splatterer

Het moment van invoeren maakt niet uit, aangezien de TS het meest recente niet gesloten event wil hebben (event dus, heeft niks met evenementen te maken in dit geval ;) )

EN aan de ts: Waarom sla je niet datum en tijd op in 1 veld, zodat je gebruik kan maken van MAX() of MIN()?

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

code:
1
2
3
4
5
6
7
8
select  e.date,
    e.time,
    e.eventName
from    user u, event e
where   u.userID = e.userID
and e.closed = 0
order by    e.date, e.time
limit 1


En zoiets?

  • Roeligan
  • Registratie: December 2001
  • Laatst online: 22-07-2025
ik heb geprobeert met min(date) maar ik krijg een foutmelding (in coldfusion) kan variabele date niet vinden. (ook geprobeert met type datetime)

@ACM limit 1 krijg ik alleen record terug.... ik moet elke gebruiker hebben met het recente event

A real man fears not mortality for it's death, he fears mortality for it's lack of life!
RatPack #814


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 00:45

Creepy

Tactical Espionage Splatterer

Roeligan schreef op 17 July 2003 @ 12:22:
ik heb geprobeert met min(date) maar ik krijg een foutmelding (in coldfusion) kan variabele date niet vinden. (ook geprobeert met type datetime)

@ACM limit 1 krijg ik alleen record terug.... ik moet elke gebruiker hebben met het recente event
date en datetime zijn waarschijnlijk reserved words.
Probeer eens een min(e.date) of vernoem je veldnamen.
Vergeet ook niet het group by gedeelte ;)

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney

Pagina: 1