通常のpost、tag、およびtag_postテーブルを含むpost/tagデータベースがあります。tag_postテーブルには、tagidフィールドとpostidフィールドが含まれています。
投稿をクエリする必要があります。特定のタグを持つ投稿を取得する場合は、結合を使用する必要があります。
... INNER JOIN tag_post ON post.id = tag_post.postid
WHERE tag_post.tagid = {required_tagid}`
tagIdAとtagIdBを持つ投稿をフェッチする場合は、2つの結合を使用する必要があります(最終的にはこれに同意しました)。
次に、特定のタグがない投稿をクエリする必要があります。あまり考えずに、私はに変更し=
ました!=
:
... INNER JOIN tag_post ON post.id = tag_post.postid
WHERE tag_post.tagid != {certain_tagid}`
ブーム!間違った論理!
私はこれを思いついた-ここにロジックを書くだけだ:
... INNER JOIN tag_post ON post.id = tag_post.postid
WHERE tag_post.postid NOT IN
(SELECT postid from tag_post where tagid = {certain_tagid})
私はこれがうまくいくことを知っていますが、私が育った方法のために、私がサブクエリでクエリを書くときはいつでも罪悪感を感じます(正当化されるかどうか)。
これを行うためのより良い方法を提案しますか?