我有一张有 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)
问题
如何找到未返回或未从列表中找到匹配项的客户列表?
假设客户表只有 (1,79,100)。那么这意味着 14 和 123 将不匹配。我如何找到那些找不到匹配项的值。
我在我的例子中进行了简化。我的项目列表有 300 多个 ID,因此使用WHERE
带有长列表的条件OR
会很麻烦/笨拙。我曾考虑与 self LEFT JOIN 结合并识别 NULL 配对值,即 14 和 123
有没有更优雅的方法?