確かに共通の問題があります。「n」個のタグを持つエンティティを検索するクエリを作成したいと思います。したがって、最も単純なケースでは、"hey" というタグを持つすべてのエンティティを見つけます。より複雑なケースでは、"hey"、"hi"、"howdy" のすべてのタグを持つすべてのエンティティを見つけます。
タグ テーブルに 3 回参加する必要があり、3 つの異なるエイリアスを作成する必要があるようです。抽象的なケースでは、N 個の異なるエイリアスを作成する必要があります。これを達成するためのより簡単な方法はありますか?
私が尋ねている理由は、タグだけでなく、さまざまなことに対してこれを行うクエリを書く必要があるからです。だから私は基本的にNxMエイリアスに参加するつもりです...これはクエリを書く(そして調整する)のが面倒です。
ヘルプ?
編集:
どうでも。私は解決策を見つけました:
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'