SQL Practice Logo

SQLPractice Online

Semi-JOINs & EXISTS Pattern: Real-World

Module: Joins & Relationships

Find customers who have orders (EXISTS). Find products in active categories (EXISTS). Filter users with specific permissions (EXISTS). Semi-joins are efficient for existence checks.

Customer Segmentation - Active Buyers

Marketing needs to identify active customers who have made purchases in specific categories for targeted campaigns.

EXISTS pattern to filter customers based on purchase behavior

-- Find customers who bought Electronics in last 90 days

SELECT

c.customer_id,

c.customer_name,

c.email,

c.customer_tier,

c.registration_date

FROM customers c

WHERE EXISTS (

SELECT 1 FROM orders o

INNER JOIN order_items oi ON o.order_id = oi.order_id

INNER JOIN products p ON oi.product_id = p.product_id

WHERE o.customer_id = c.customer_id

AND p.category = 'Electronics'

AND o.order_date >= CURRENT_DATE - INTERVAL 90 DAY

AND o.status = 'completed'

)

AND c.status = 'active'

ORDER BY c.customer_tier DESC, c.registration_date;

Enables targeted marketing campaigns for electronics buyers. Higher conversion rates through relevant product recommendations.

All

Inventory Optimization - Products with Demand

Inventory team needs to identify products that have consistent demand to optimize stock levels and purchasing decisions.

EXISTS to find products with recent sales activity

-- Products with sales in last 3 months across multiple orders

SELECT

p.product_id,

p.product_name,

p.category,

p.price,

i.current_stock,

i.reorder_point

FROM products p

INNER JOIN inventory i ON p.product_id = i.product_id

WHERE EXISTS (

SELECT 1 FROM order_items oi