Bonsoir,

Je suis empêtré dans une requête, et à force d'avoir la tête dedans, je ne vois plus la solution, qui doit pourtant être relativement simple (je pense).
Voici les cas :
- j'ai une table (SESSIONS) avec différentes données, des sessions. Chaque session possède un id, un libellé, et d'autres données sans intérêt.
- une autre table (DATES), qui contient 3 champs : id, id de la table des sessions (clé étrangère de la table SESSIONS), et une date.
- une SESSION peut être rattachée à 0 ou plusieurs dates.

Mon besoin : récupérer TOUTES les sessions, et pour chacune la date minimale (ou null, ou autre valeur si aucune date correspondante à cette session).

Pour info, voici le code de création des 2 tables, avec un jeu d'essai :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
CREATE TABLE IF NOT EXISTS `DATES` (
  `Date_id` bigint(20) NOT NULL auto_increment,
  `Date_SessionId` bigint(20) NOT NULL COMMENT 'Clé externe de la session à laquelle est rattrachée cette date',
  `Date_Date` date NOT NULL,
  PRIMARY KEY  (`Date_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=69 ;
 
--
-- Contenu de la table `DATES`
--
 
INSERT INTO `DATES` (`Date_id`, `Date_SessionId`, `Date_Date`) VALUES
(66, 67, '2011-06-23'),
(68, 67, '2011-06-28'),
(62, 110, '2011-10-03'),
(67, 67, '2011-06-30');
 
-- --------------------------------------------------------
 
--
-- Structure de la table `SESSIONS`
--
 
CREATE TABLE IF NOT EXISTS `SESSIONS` (
  `Session_id` bigint(20) NOT NULL auto_increment,
  `Session_Libelle` varchar(255) NOT NULL,
  PRIMARY KEY  (`Session_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=112 ;
 
--
-- Contenu de la table `SESSIONS`
--
 
INSERT INTO `SESSIONS` (`Session_id`, `Session_Libelle`) VALUES
(67, 'Libellé Session 1'),
(60, 'Libellé Session 2'),
(111, 'Libellé Session 3');
Sur cet exemple, je voudrais obtenir la liste des sessions (3), avec pour chaque la date la plus petite associée, ou null si aucune date associée :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
67   Libellé Session 1   2011-06-23
60   Libellé Session 2   null
110   Libellé Session 3   2011-10-03
Je tourne en rond depuis hier, je n'avance plus.
une idée ?

Merci !
Olif.