タグ付けを組み込んだデータベースを構築しており、3つのテーブルがある「toxi」スキーマを使用しています。
Items: Item, ItemID, more fields
Tags: TagName, TagID, more fields
TagMap: TagID, ItemID
すべてのアイテムとそのタグを一覧表示するクエリを作成しようとしています。多くのアイテムにはタグがない場合があります。両方を実行できるクエリが見つかりません。
次のクエリは、名前でタグ付きのアイテムを取得しますが、タグ付きのアイテムのみをプルします。
SELECT Items.Item, Tags.Tag
FROM Items INNER JOIN
(Tags INNER JOIN TagMap ON Tags.ID = TagMap.TagId)
ON Items.ID = TagMap.ItemId;
次のクエリでは、タグが付けられている場合はすべてのアイテムとそのTagIDを取得しますが、1つのクエリでそれらのTagIDをTagNamesに変換する次のステップに進むことができないようです。
SELECT [Items].Item, [TagMap].TagId
FROM Items LEFT JOIN TagMap ON [Items].ID=TagMap.ItemId;
MSDNによると、「OUTERJOINはマルチテーブル結合のINNERJOIN内にネストできますが、INNERJOINはOUTERJOIN内にネストできません」とのことですが、エラーをスローしない2つの結合をネストする方法が見つかりません。私が見る限り、私は左の参加がアイテムにある必要があります。
すでにマシンにインストールされているため、Accessでコンセプトデータベースにプルーフを構築しています。おそらくいつかSQLServerに切り替えるでしょう。