Bonjour à toutes et tous
j'ai 3 tables
table adherents : ID , nom ,prenom
table adherents_cours: ID, id_activite, id_adherent (id_activite représentant un cours)
table presence_cours: ID, id_adherent, id_activite, date ( ne figure que les adhérents qui sont présents à un cours "id_activite" à une date précise. Je ne voudrais pas mettre une colonne présent en plus avec 1 ou 0, car ma table va gonfler au moins 3 fois plus)
cette requête donne 4 adhérents ce 07/03/2022 au cours 130
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SELECT * FROM presences_cours WHERE id_activite=130 AND date_cours ='07/03/2022'
dans ce cours 130 il y a 6 adhérents.
Je voudrais extraire une table temporaire avec une seule requête qui me donne:
les 6 adhérents du cours 130 donc id_adherent, nom, prenom
avec une colonne present = 0 ou à 1 en fonction de présence ou non à ce cour 130 le 07/03/2022.
j'ai essayé plusieurs requêtes
celle qui se rapproche de ce que je veux
cette requete me retourne bien les 6 adhérents et pour 4 d'entre eux present=1 et le 2 autres present=0.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SELECT id_adherent AS adherent, (SELECT COUNT(*) FROM presences_cours WHERE date_cours = '07/03/2022' AND id_activite =130 AND id_adherent = adherent) AS present FROM adherents_cours WHERE id_activite =130;
Mais je n'arrive pas sortir le nom et le prenom qui sont dans la table adherent!
Et si je mets des INNER JOIN je n'ai plus que les 4 présents.
J'espère être clair![]()
Partager