SQL Practice Logo

SQLPractice Online

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