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
原文地址:https://www.cnblogs.com/sixu/p/6884890.html