facebook pixel
Day 3/7 - SQL Challenge šŸŽÆ TODAY'S QUESTION: Find all products that have never been ordered. TABLES: Products (id, product_name, price) Orders (id, customer_id, order_date) Order_Items (id, order_id, product_id, quantity) THE SOLUTION: SELECT p.product_name FROM Products p LEFT JOIN Order_Items oi ON p.id = oi.product_id WHERE oi.product_id IS NULL; WHY THIS WORKS: LEFT JOIN keeps ALL products (even without matches) Products without orders have NULL in Order_Items columns WHERE oi.product_id IS NULL filters to only those products COMMON MISTAKES: āŒ Using INNER JOIN (only returns ordered products) āŒ Using WHERE oi.order_id = NULL (should be IS NULL) āŒ Not understanding LEFT JOIN vs INNER JOIN difference ALTERNATIVE (using NOT IN): SELECT product_name FROM Products WHERE id NOT IN ( SELECT DISTINCT product_id FROM Order_Items WHERE product_id IS NOT NULL ); ALTERNATIVE (using NOT EXISTS): SELECT product_name FROM Products p WHERE NOT EXISTS ( SELECT 1 FROM Order_Items oi WHERE ...

Ā 26.1k

Ā 531

Ā 18

Ā 26.1k

    Suggested Credits
    Tags, Events, and Projects