183. Customers Who Never Order (Easy)

Source: https://leetcode.com/problems/customers-who-never-order/#/description
Description:

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:

select t0.name as Customers from (
    (select * from Customers) t0 
    left join
    (select CustomerId ,count(*) as jishu
        from Orders
        group by CustomerId
    ) t1
    on t0.id = t1.CustomerId
)
where jishu is null
posted @ 2017-05-21 14:55  sixu  阅读(126)  评论(0编辑  收藏  举报