题目
某网站包含两个表,Customers
表和 Orders
表。编写一个 SQL 查询,找出所有从不订购任何东西的客户。
Customers
表:
Orders
表:
例如给定上述表格,你的查询应返回:
解题思路
前置知识
IN 与 NOT IN
IN 运算符用来判断表达式的值是否位于给出的列表中;如果是,返回值为 1,否则返回值为 0。
NOT IN 的作用和 IN 恰好相反,NOT IN 用来判断表达式的值是否不存在于给出的列表中;如果不是,返回值为 1,否则返回值为 0。
IN 和 NOT IN 的语法格式如下:expr IN ( value1, value2, value3 ... valueN )
expr NOT IN ( value1, value2, value3 ... valueN )
使用SELECT查询订购的用户,再用NOT IN查询在orders表中没有出现的id
代码实现
select Name as Customers from Customers c where c.id not in(select customerid from Orders )