在SQL中,EXISTS和IN都用于子查询,但它们的用途和行为有所不同。
例如,以下查询将返回所有具有至少一个订单的客户:
SELECT *
FROM customers
WHERE EXISTS (
SELECT *
FROM orders
WHERE orders.customer_id = customers.customer_id
);
例如,以下查询将返回所有具有订单的客户,其中订单状态为’Completed’:
SELECT *
FROM customers
WHERE customer_id IN (
SELECT customer_id
FROM orders
WHERE order_status = 'Completed'
);
总结: