テーブルのタグとアイテム、およびタグをアイテムに一致させる3番目のテーブルのタグアイテムがあります。ユーザーは、タグのリストが表示されるアイテムページに移動できます。タグをクリックすると、tagitemテーブルに行が挿入され、アイテムにタグが付けられます。
ユーザーが同じタグをアイテムに2回適用するのを防ぐために、表示されるタグのリストで、アイテムにすでに適用されているタグを除外したいと思います。したがって、タグをプルするクエリには、特定のアイテムにすでに割り当てられているタグを除外する条件が含まれている必要があると思います。しかし、私はこれを行うのに問題があります。
表は次のとおりです。
タグ
id|tag
アイテム
id|item
tagitem
id|tagid|itemid
すべてのタグをプルするクエリは次のようになります。
"SELECT * FROM tags"
アイテムに一致するタグの情報を含むテーブルがtagitemであるため、それらに参加しました。問題のアイテムのtagitemテーブルにエントリがあるタグを除外する、以下の括弧で大まかに説明されている条件を含める方法を理解する必要があります。
SELECT t.*,ti.*
FROM `tags` t
LEFT JOIN `tagitem` ti
on t.id = ti.tagid
WHERE
ti.tagid NOT IN (SELECT * FROM tagitem WHERE itemid = '22')
GROUP BY t.id
これは私が得た限りです。(現在、奇妙なオペランドエラーが発生しています。)これを行う適切な方法についての提案をいただければ幸いです。ありがとう!