tagidとcontentidの 2 つの列を持つ「タグ」テーブルがあるとします。各行は、コンテンツに割り当てられたタグを表します。tagid 334、338、および 342 でタグ付けされたすべてのコンテンツの contentid を取得するクエリが必要です。
これを行う「簡単な」方法は次のとおりです(疑似コード):
select contentid from tags where tagid = 334 and contentid in (
select contentid from tags where tagid = 338 and contentid in (
select contentid from tags where tagid = 342
)
)
しかし、私の直感では、これを行うには、より優れた、より高速で拡張可能な方法があることがわかります。たとえば、12 個のタグの交点を見つける必要がある場合はどうすればよいでしょうか? これはすぐに恐ろしくなります。何か案は?
編集: これは、この優れたブログ投稿でも取り上げられていることが判明しました。