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