mysql查询应用找出从未下过订单的

如上图所示,现有两个表,一张客户表(Customers)和一张订单表(Order1),要求找出从未下过订单的客户姓名(CustomerName)。

方法一:使用where型子查询

第一步:查询订单表(Order1)中下过订单的客户Id(CustomerId)。

selectdistinctCustomerIdfromOrder1

得到下过订单的客户Id如下:

第二步:使用notin找出客户表(Customers)中没有在订单表(Order1)表中customerId列出现过的Id。

最终结果如下:

方法二:使用Exists子查询

首先找到下过订单的客户Id,然后使用notexists得到未下过订单的客户,不存在c.Id=o.CustomerId的结果集也就是从未下过订单的客户。

方法三:使用左连接

第一步:使用leftjoin将客户表(Customers)和订单表(Order1)关联。

得到如下结果:

第二步:筛选o.CustomerId为空的结果集也就是从未下过订单的客户。

最终结果如下




转载请注明:http://www.aierlanlan.com/tzrz/5459.html

  • 上一篇文章:
  •   
  • 下一篇文章: