[MySQL] Join select met MIN

Pagina: 1
Acties:

  • Liqued
  • Registratie: Februari 2001
  • Laatst online: 09-01 18:51
Heb de volgende twee tabellen:
code:
1
2
3
4
5
6
7
8
9
+--------------+ +--------------+
| Posts        | | Onderwerpen  |
+--------------+ +--------------+
| postid       | |  onderwerpid |
| timestamp    | |  naam        |  
| onderwerpid  | |  forumid     |  
| gebruikerid  | +--------------+  
| post         |
+--------------+

Wil de onderwerpen selecteren waarvan de timestamp van de eerste posts tussen een bepaalde tijdslimiet ligt.

Ik had zelf het volgende verzonnen:
SQL:
1
2
3
4
5
6
SELECT o.onderwerpid, MIN( p.timestamp ) AS 'mintimestamp' 
FROM Onderwerpen o, Posts p
WHERE 'mintimestamp' >= '2005-10-01'
AND 'mintimestamp' < '2005-11-01'
AND o.onderwerpid = p.onderwerpid
GROUP BY o.onderwerpid


Ik weet zeker dat er onderwerpen zijn waarvan de eerste post tussen 2005-10-01 en 2005-11-01 zit, maar toch geeft ie geen resultaten terug. Iemand een suggestie?

  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Als je een criterium op een aggregate wilt toepassen (bijv. de MIN functie in je voorbeeld) moet je HAVING gebruiken. Ik kan niet zo snel de link op de mysql site vinden, maar het zal zoiets zijn:

SELECT [..]
FROM [..]
GROUP BY [..]
HAVING MIN(p.timestamp) BETWEEN [..]

Oops! Google Chrome could not find www.rijks%20museum.nl