PostgreSQL IN 运算符
IN
IN 操作符允许你在 WHERE 子句中指定一系列可能的值。
IN 操作符是多个 OR 条件的简写。
实例
返回来自 'Germany'、France' 或 'UK' 的所有客户:
SELECT * FROM customers
WHERE country IN ('Germany', 'France', 'UK');
NOT IN
通过在 IN 运算符前使用 NOT 关键字,您可以返回不属于列表中任何值的所有记录。
实例
返回不是来自 'Germany'、France' 或 'UK' 的所有客户:
SELECT * FROM customers
WHERE country NOT IN ('Germany', 'France', 'UK');
IN (SELECT)
你也可以在括号内使用 SELECT 语句,以返回 SELECT 语句结果中的所有记录。
实例
返回在 orders 表中有订单的所有客户:
SELECT * FROM customers WHERE customer_id IN (SELECT customer_id FROM orders);
NOT IN (SELECT)
上面的示例返回了 89 条记录,这意味着有 2 个客户没有下任何订单。
让我们通过使用 NOT IN 操作符来检查这是否正确。
实例
返回在 orders 表中没有下任何订单的所有客户:
SELECT * FROM customers WHERE customer_id NOT IN (SELECT customer_id FROM orders);