版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wal1314520/article/details/80108089
183.从不订购的客户
假设一个网站包含两个表,Customers
表和 Orders
表。编写一个SQL语句找出所有从不订购任何东西的客户。
用到的表和数据SQL:
Create table If Not Exists Customers (Idint, Name varchar(255));
Create table If Not Exists Orders (Id int,CustomerId int);
Truncate table Customers;
insert into Customers (Id, Name) values('1', 'Joe');
insert into Customers (Id, Name) values('2', 'Henry');
insert into Customers (Id, Name) values('3', 'Sam');
insert into Customers (Id, Name) values('4', 'Max');
Truncate table Orders;
insert into Orders (Id, CustomerId) values('1', '3');
insert into Orders (Id, CustomerId) values('2', '1');
答案:
此题很简单,直接让两个表左外连接,然后只要找出右边的CustomerId为Null的顾客就是没有下订单的顾客。
select c.name Customers
from Customers c
left join Orders o on o.CustomerId = c.Id
where o.CustomerId is null
写的比较粗糙,有不理解的可以扫描二维码加QQ群找我解答。