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