J'ai un problème commun pour être sûr. Je voudrais faire une requête qui trouve une entité qui a des balises "n". Donc dans le cas le plus simple, on retrouve toutes les entités qui ont le tag "hey". Dans un cas plus complexe, on retrouve toutes les entités qui ont toutes les balises "hey", "hi" et "howdy".Comment coder efficacement une requête dans mysql à AND tags?
Il semble que je doive me joindre à la table des variables 3 fois, et ainsi créer 3 alias différents. Dans le cas abstrait, je devrai faire N alias différents. Existe-t-il un moyen plus simple d'y parvenir?
La raison pour laquelle je demande est que j'ai besoin d'écrire une requête qui non seulement le fait pour les balises, mais pour une variété de choses. Donc, je vais essentiellement rejoindre les alias NxM ... ce qui va sucer pour écrire (et régler) la requête.
Aide?
ÉDIT:
Nevermind. J'ai trouvé la solution:
select distinct g.id, g.description
FROM gallery g
inner join gallery_to_tag g2t_0
on g2t_0.gallery_id = g.id
inner join tag t_0
on t_0.id = g2t_0.tag_id and t_0.term = 'hi'
inner join gallery_to_tag g2t_1
on g2t_1.gallery_id = g.id
inner join tag t_1
on t_1.id = g2t_1.tag_id and t_1.term = 'hey'
S'il vous plaît poster une partie de votre schéma. –