An inner JOIN drops rows that have no partner. Often that's exactly the row you're asked about: customers who never ordered, products that never sold. LEFT JOIN keeps every row from the table on the left (the one after FROM) and fills the right side's columns with NULL where there's no match:
SELECT c.first_name, o.order_id
FROM customers AS c
LEFT JOIN orders AS o ON c.customer_id = o.customer_id;
Customers with no orders appear once, with order_id NULL. To find only them, add WHERE o.order_id IS NULL. Interviewers ask for this pattern a lot.
COUNT(*) counts that NULL row too, so a customer with no orders counts as 1; COUNT(o.order_id) gives the correct 0. A WHERE condition on the right table, such as o.status = 'delivered', removes the NULL rows and turns your LEFT JOIN back into an inner join without any error. Put conditions like that in the ON clause instead.