Customers Who Never Order

来源:互联网 发布:视频源码 编辑:程序博客网 时间:2024/05/23 01:56

Suppose that a website contains two tables, the Customers table and theOrders 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       |+-----------+
使用not in,not exists 或者left join
765ms
select Name from Customers c where not exists (select CustomerId from Orders o where c.id = o.CustomerId);
692ms
select Name from Customers where Id not in (select CustomerId from Orders);
552ms
select Name from Customers c left join Orders o on c.Id = o.CustomerId where o.id is null;



                                             
0 0