次の表を想像してください。
テーブルボックスを作成します( id int, name text, ...);
テーブルの作成
テーブルは次のようになります。
ボックス: ID | 名前 1 | オレンジのみ 2 | オレンジのみ2 3 | オレンジバナナ 4 | その他 物事の受信箱: ID | box_id | もの 1 | 1 | オレンジ 2 | 1 | オレンジ 3 | 2 | オレンジ 4 | 3 | オレンジ 5 | 3 | バナナ 6 | 4 | オレンジ 7 | 4 | りんご 8 | 4 | バナナ
オレンジが少なくとも 1 つ含まれ、オレンジ以外が何も含まれていないボックスを選択するにはどうすればよいですか?
数十万個の箱があり、おそらく百万個のものが箱に入っていると仮定すると、これはどのようにスケーリングしますか?
結果セットをスクリプトで後処理するのではなく、可能であれば、これをすべて SQL に保持したいと思います。
私はpostgresとmysqlの両方を使用しているため、mysqlがサブクエリを最適化しないことを考えると、サブクエリはおそらく悪いです(とにかくバージョン6より前)。