Bonjour,

C'est un problème assez récurrent chez moi, mais je suis encore en train de lutter pour sélectionner les éléments d'une table en fonction d'éléments situés dans une autre table.

Imaginons des réunions, qu'on appel Session et constitué de plusieurs créneaux horaires sur des jours différents...

donc
Session ( id_session, session.nom_session )
Creneaux (id_creneaux, #session_creneaux, debut_creneaux)

Je veux récupérer et (trier organiser) toutes les sessions débutant entre :debut et :fin.

J'ai écrit

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
select 
   session.id_session, 
   c2.debut 
from 
   creneaux as c1
      left join (select creneaux.id_creneaux, min(debut_creneaux) as debut from creneaux group by creneaux.id_creneaux ) as c2 on c1.id_creneaux = c2.id_creneaux, 
   session 
where 
   c2.debut between :debut and :fin 
   and session.id_session = c1.session_creneaux
group by 
   session.id_session 
order by 
   c2.debut
Le résultat étant la liste de toutes les sessions ayant un creneaux entre :debut et :fin, comme si j'avais fait une relation simple entre session et creneaux.

Qu'est-ce donc que je fait mal ?

En vous remerciant !