各識別子について、 受け取った国が配送された国のいずれとも等しくない場合、どのように数量を返すことができますか? 私のテーブルは巨大なので、以下の手順には効率的なクエリが必要です。
これらは、これを行うことができると私が考える手順です。もちろん、それらに従う必要はありません:)
- 識別子ごとに「配達済み」国のグループを作成します。
- 「受信」が各識別子のこれらの国であるかどうかを確認します。一致しない場合は、この結果を返します。
開始テーブル:
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に似たものを使用しています。