各識別子について、 受け取った国が配送された国のいずれとも等しくない場合、どのように数量を返すことができますか? 私のテーブルは巨大なので、以下の手順には効率的なクエリが必要です。
これらは、これを行うことができると私が考える手順です。もちろん、それらに従う必要はありません:)
- 識別子ごとに「配達済み」国のグループを作成します。
- 「受信」が各識別子のこれらの国であるかどうかを確認します。一致しない場合は、この結果を返します。
開始テーブル:
identifier delivered received quantity
------------- ------------ ----------- ------------
1 USA France 432
1 France USA 450
1 Ireland Russia 100
2 Germany Germany 1,034
3 USA France 50
3 USA USA 120
結果:
identifier delivered received quantity
------------- ------------ ----------- ------------
1 Ireland Russia 100
開始テーブルは約 30,000,000 行なので、残念ながら自己結合は不可能です。MySQLに似たものを使用しています。