J'exécute la requête suivante qui relie 3 tables pour récupérer les entraînements et les balises qui leur sont associées.
(db/query {:select [:workouts.id :workouts.name :tag.tag_name]
:from [:workouts]
:left-join [[:workout_tags :workout_tag] [:= :workout_tag.workout_id :workouts.id]
[:tags :tag] [:= :tag.tag_id :workout_tag.tag_id]]
:where [:= :workouts.id 1]}))
Le résultat est le suivant :
({:id 1, :name "Short", :tag_name "cardio"}
{:id 1, :name "Short", :tag_name "No weights"})
Idéalement, j'aimerais renvoyer à l'utilisateur final un résultat unique avec la balise tag_name
en un seul champ. Quelque chose comme :
{:id 1, :name "Short", :tag_name ["cardio" "No weights"]}
Il semblerait que je puisse assez facilement le faire après coup, mais je voulais voir s'il existait une fonction MySQL intégrée qui puisse faire ce que je cherche à accomplir. Il semble que GROUP_CONACT
pourrait faire ce que je cherche, mais je n'arrive pas à le faire fonctionner dans le contexte de HoneySQL.