Bonjour à tous,
je n'arrive pas à faire la bonne requête. J'ai une table `stage` avec un champs date et une table `fairestage` qui fais la liaison entre le stagiaire et ses stages.
J'aimerais récupérer le stage le plus récent d'un stagiaire X
J'ai une vieille version de mysql hélas, je ne peux pas faire directement des sous-requête
Voilà ce que j'ai fais pour l'instant sur l'id :
En gros, comment récupérer l'idStage correspond à MAX(dateStage)Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 $sql = "SELECT MAX(idStage) FROM `fairestage`WHERE idStagiaire = '".$_SESSION['user']."'"; list($maxIdStage) = mysql_fetch_array(mysql_query($sql)); $sql = "SELECT `stage`.idStage, date_format(dateStage, '%d/%m/%Y') AS dateStage, `lieu`.cp, `lieu`.ville, `stage`.prix, `typestage`.libelle FROM `stage`,`fairestage`,`typestage`,`lieu` WHERE idStagiaire = '".$_SESSION['user']."' AND stage.idStage = fairestage.idStage AND `fairestage`.idType = `typestage`.idType AND `stage`.idLieu = `lieu`.idLieu AND `stage`.idStage = '".$maxIdStage."'";
j'ai trouvé une solution, je contourne le problème ^^
Code:
1
2
3
4
5
6
7
8
9
10 SELECT `stage`.idStage FROM `stage`, `fairestage` WHERE `fairestage`.idStage = `stage`.idStage AND `fairestage`.idStagiaire = '".$_SESSION['user']."' ORDER BY dateStage DESC LIMIT 0, 1
Peut-on utiliser un max() dans un where ? genre maColonne = MAX(....)