Subqueries vs JOINs: Performance & Readability: Examples
Module: Joins & Relationships
Same Query: JOIN vs Subquery Approaches
basic
Find customers who have placed orders - compare JOIN and subquery approaches
-- Approach 1: Using JOIN
SELECT DISTINCT c.customer_name, c.email
FROM customers c
INNER JOIN orders o ON c.customer_id = o.customer_id;
-- Approach 2: Using EXISTS subquery (usually faster)
SELECT c.customer_name, c.email
FROM customers c
WHERE EXISTS (
SELECT 1 FROM orders o WHERE o.customer_id = c.customer_id
);
-- Approach 3: Using IN subquery
SELECT c.customer_name, c.email
FROM customers c
WHERE c.customer_id IN (
SELECT DISTINCT customer_id FROM orders
);
All three return customers who have placed orders
EXISTS usually performs best for existence checks. JOIN requires DISTINCT. IN can have issues with NULLs.
All