J'ai une base de données MySql avec trois tables que j'ai besoin de combiner dans une requête: schedule, inscrits et waitlist. Ils mettent en œuvre un système d'inscription de base.Comment inclure des rowcounts filtrés provenant de deux autres tables dans une requête d'un tiers?
La planification contient les classes planifiées. Lorsqu'un utilisateur s'inscrit dans une classe, son ID de compte d'utilisateur et l'ID de la classe planifiée sont stockés dans l'inscription. Si une classe est à capacité, ils sont stockés dans la liste d'attente à la place. Les trois tables partagent une colonne scheduleId qui identifie chaque classe. Lorsque j'interroge la table de nomenclature, je dois également renvoyer les colonnes inscrites et liste d'attente qui représentent le nombre d'utilisateurs inscrits et en attente de ce planningId particulier.
Une requête préliminaire, je suis venu avec pour y parvenir est:
select s.id, s.classDate, s.instructor, COUNT(e.id) as enrolled
from schedule as s
left outer join enrolled as e
on s.id = e.scheduleId
group by s.id
qui fonctionne bien pour l'un ou l'autre, mais il est évident que je ne peux pas obtenir les valeurs pour les deux inscrits et des tables de liste d'attente de cette façon . Quelqu'un peut-il suggérer un bon moyen de le faire?