Question
Suppose that a website contains two tables, the Customers table and the Orders table. Write a SQL query to find all customers who never order anything.
Table: Customers.
+—-+——-+
| Id | Name |
+—-+——-+
| 1 | Joe |
| 2 | Henry |
| 3 | Sam |
| 4 | Max |
+—-+——-+
Table: Orders.
+—-+————+
| Id | CustomerId |
+—-+————+
| 1 | 3 |
| 2 | 1 |
+—-+————+
Using the above tables as example, return the following:
+———–+
| Customers |
+———–+
| Henry |
| Max |
+———–+
Solution
My Solution
# Write your MySQL query statement below
select Name
from Customers
where Id not in
(select distinct c.Id
from Customers c, Orders o
where c.Id=o.CustomerId)
Other′s Solution
# Write your MySQL query statement below
select Name
from Customers a left join Orders b
on a.Id=b.CustomerId
where CustomerId is null
Take-home Message
where CustomerId is null
null can be used on where