PostgreSQL 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运算符 :

示例

返回未在其中代表的所有客户orders表格:

SELECT customers.customer_name
FROM customers
WHERE NOT EXISTS (
  SELECT order_id
  FROM orders
  WHERE customer_id = customers.customer_id
);
运行示例 »