PostgreSQL EXISTS 运算符
EXISTS
EXISTS
运算符用于测试子查询中是否存在任何记录。
如果子查询返回一条或多条记录,EXISTS
运算符将返回TRUE。
实例
返回 orders
订单表中显示的所有客户:
SELECT customers.customer_name
FROM customers
WHERE EXISTS (
SELECT order_id
FROM orders
WHERE customer_id = customers.customer_id
);
上例中的结果显示,89 名客户在 orders
订单表中至少有一个订单。
NOT EXISTS
要检查哪些客户没有任何订单,我们可以将 NOT
运算符与 EXISTS
运算符一起使用:
实例
退回 orders
订单表中未显示的所有客户:
SELECT customers.customer_name
FROM customers
WHERE NOT EXISTS (
SELECT order_id
FROM orders
WHERE customer_id = customers.customer_id
);