【SQL思考记录】力扣183. 从不订购的客户

本文解释了一个SQL查询,从customers表中选取那些id不在orders表customerid列中的客户,结果显示没有下过订单的客户名字。
摘要由CSDN通过智能技术生成

SQL代码

SELECT name AS Customers 
FROM customers
WHERE customers.id NOT IN
(
    SELECT customerid FROM orders
);

查询解析

目标

查询目标是从客户表(customers)中筛选出那些在订单表(orders)中没有订单记录的客户。

查询步骤

  1. 选择字段:

    • SELECT name AS Customers: 这个语句表示我们要从customers表中选择name字段,并且将这个字段的名称别名为Customers。这意味着查询结果中,这一列将标记为“Customers”。
  2. 指定表格来源:

    • FROM customers: 这指定了我们要查询的主表是customers
  3. 筛选条件:

    • WHERE customers.id NOT IN: 这是查询的关键部分。这里我们指定一个条件,即选择那些customers表中的id不在某个子查询结果集中的行。
    • 子查询:SELECT customerid FROM orders: 这个子查询从orders表中选择所有的customerid。这一步的结果是一个包含所有下过订单的客户ID的列表。
    • 将主查询与子查询结合起来理解,WHERE customers.id NOT IN (SELECT customerid FROM orders)的意思是“选择那些customers表中的ID不在orders表的customerid列中的客户”。

结果

这个查询将返回一个列表,列出了所有在customers表中但没有在orders表中出现过的客户的名字。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值