LeetCode笔记:183. Customers Who Never Order

来源:互联网 发布:php注册登陆页面代码 编辑:程序博客网 时间:2024/06/06 22:06

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       |+-----------+

Top Solutions:

SELECT A.Name from Customers AWHERE NOT EXISTS (SELECT 1 FROM Orders B WHERE A.Id = B.CustomerId)SELECT A.Name from Customers ALEFT JOIN Orders B on  a.Id = B.CustomerIdWHERE b.CustomerId is NULLSELECT A.Name from Customers AWHERE A.Id NOT IN (SELECT B.CustomerId from Orders B)

My Solution:
(外层查询中WHERE需要根据Id字段寻找,不能使用Name字段,避免重名

select Name as Customers from Customerswhere Id not in(    select Customers.Id     from Customers, Orders     where Customers.Id = Orders.CustomerId);
0 0
原创粉丝点击