SQLite で、特定のプロパティ + 値を持つ記事、または特定のプロパティを持たない記事 (プロパティが別のテーブルにある) を検索するための SELECT クエリを作成したいと考えています。
これは、私が持っているデータベースを整理した方法です。
Articles:
ID Name
1 Paper clip
2 Water hose
3 Rubber duck
Features
ID Articles_ID Name Value
1 1 Color White
2 2 Color Yellow
3 2 Length 1.4m
4 3 Color Yellow
黄色の記事を見つけたい場合は、次のようにします。
SELECT distinct a.Name from Articles a join Features f
where a.ID = f.Articles_ID
and f.Name = "Color"
and f.Value = "Yellow";
しかし、色が黄色で、長さの機能がない記事を検索したい場合はどうすればよいでしょうか。つまり、長さがないのでラバーダックが欲しいのですが、ウォーターホースは欲しくありません。
私のUIでは、次を選択できます。
Color: [ ] <empty>
[x] Yellow
[ ] White
[ ] ...
Length: [x] <empty>
[ ] 0.7m
[ ] 1.4m
[ ] ...
私の記事テーブルには最大 20,000 行あり、機能は最大 200,000 です。
おそらく、私のデータベースはこの種のクエリには適していませんか? 必要に応じて簡単に再生成できます。