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 个客户在订单表中至少有一个订单。
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 );