1000 を超えるテーブル (顧客など) を持つテーブルがあります。
既知の顧客リストの詳細を必要とするクエリがあります (例: CustomerID - 1,79,14,100,123)
IN() 関数は、クエリに使用したいものです。
リストに一致する顧客を見つけることがわかっている場合、次のように記述します。
SELECT * FROM Customers
WHERE CustomerID IN (1,79,14,100,123)
リストにないものを見つけるには、次のように書きます
SELECT * FROM Customers
WHERE CustomerID NOT IN (1,79,14,100,123)
質問
返されなかった、またはリストから一致が見つからなかった顧客のリストを見つけるにはどうすればよいですか?
Customers テーブルに (1,79,100) しかないとします。この場合、14 と 123 は一致しません。一致しない値を見つける方法を教えてください。
私の例では単純化していました。私のアイテム リストには 300 を超える ID があるためWHERE
、長いリストで条件を使用するのOR
は面倒です。self LEFT JOIN と組み合わせて、14 と 123 になる NULL ペアの値を特定することを考えました。
よりエレガントなアプローチはありますか?