当前位置: 首页 > news >正文

[每日一练]查询从不订购的客户(标量子查询)

该题目来源于力扣:

183. 从不订购的客户 - 力扣(LeetCode)

题目要求:

Customers 表:

+-------------+---------+
| Column Name | Type    |
+-------------+---------+
| id          | int     |
| name        | varchar |
+-------------+---------+
在 SQL 中,id 是该表的主键。
该表的每一行都表示客户的 ID 和名称。

Orders 表:

+-------------+------+
| Column Name | Type |
+-------------+------+
| id          | int  |
| customerId  | int  |
+-------------+------+
在 SQL 中,id 是该表的主键。
customerId 是 Customers 表中 ID 的外键( Pandas 中的连接键)。
该表的每一行都表示订单的 ID 和订购该订单的客户的 ID。

找出所有从不点任何东西的顾客。

以 任意顺序 返回结果表。

结果格式如下所示。

示例 1:

输入:
Customers table:
+----+-------+
| id | name  |
+----+-------+
| 1  | Joe   |
| 2  | Henry |
| 3  | Sam   |
| 4  | Max   |
+----+-------+
Orders table:
+----+------------+
| id | customerId |
+----+------------+
| 1  | 3          |
| 2  | 1          |
+----+------------+
输出:
+-----------+
| Customers |
+-----------+
| Henry     |
| Max       |
+-----------+

思路流程:

已知这两个表是有外键连接的,是ID列,所有我们可以直接对两个表进行子查询。这里我们可以发现:这两个表通过customerId和id是连接起来了,我们可以从这两个字段入手进行子查询

代码实现:

# Write your MySQL query statement below
SELECT C.name Customers from Customers C WHERE C.id not in (select customerId from Orders);

知识拓展:外键和主键:

  • 主键(Primary Key)

    • 主键是表中用于唯一标识每一行数据的字段或字段组合。
    • 每个表只能有一个主键。
    • 主键的值不能重复,且不能为空(NOT NULL)。
    • 主键通常用于确保表中每行数据的唯一性,经常与外键一起使用来建立表与表之间的关联关系。
  • 外键(Foreign Key)

    • 外键是用于关联两个表的字段,它指向另一张表的主键。
    • 外键可以确保一个表中的数据与另一张表中的数据存在关联关系。
    • 通过外键,可以实现在一个表中引用另一个表中的数据,从而建立表与表之间的关联。

相关文章:

  • 数据结构——二叉树的实现
  • opencv进阶 ——(七)图像处理之寸照换背景
  • 基于python flask的旅游数据大屏实现,有爬虫有数据库
  • 算法的时间与空间复杂度
  • 【C++面试100问】第八十五问:有了const,C++11为什么还要引入constexpr
  • 【busybox记录】【shell指令】readlink
  • Google发布的CAT3D,在1分钟内,能够从任意数量的真实或生成的图像创建3D场景。
  • 基于STM32+NBIOT(BC26)设计的物联网观赏鱼缸
  • 【前端每日基础】day27——小程序开发
  • 居间人从事光伏行业需要了解的关键因素
  • STM32实验之USART串口发送+接受数据(二进制/HEX/文本)
  • Putty: 随心御剑——远程启动服务工具plink
  • 【XR806开发板试用】基础篇,从零开始搭建一个LCD彩屏时钟(ST7735S驱动)
  • jenkins插件之Warnings
  • 稳住!一招制胜:打造JavaScript防抖函数的终极指南【含代码示例】
  • [译] React v16.8: 含有Hooks的版本
  • Electron入门介绍
  • Github访问慢解决办法
  • httpie使用详解
  • python学习笔记-类对象的信息
  • vue学习系列(二)vue-cli
  • 飞驰在Mesos的涡轮引擎上
  • 精益 React 学习指南 (Lean React)- 1.5 React 与 DOM
  • 聊聊sentinel的DegradeSlot
  • 目录与文件属性:编写ls
  • 前端存储 - localStorage
  • 入门级的git使用指北
  • 使用Gradle第一次构建Java程序
  • 原生 js 实现移动端 Touch 滑动反弹
  • 阿里云服务器如何修改远程端口?
  • 关于Kubernetes Dashboard漏洞CVE-2018-18264的修复公告
  • 昨天1024程序员节,我故意写了个死循环~
  • ​LeetCode解法汇总307. 区域和检索 - 数组可修改
  • ​如何使用ArcGIS Pro制作渐变河流效果
  • ​无人机石油管道巡检方案新亮点:灵活准确又高效
  • # Maven错误Error executing Maven
  • #100天计划# 2013年9月29日
  • (a /b)*c的值
  • (ctrl.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MDd_DynamicDebug”不匹配值“
  • (ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY)讲解
  • (转载)跟我一起学习VIM - The Life Changing Editor
  • **《Linux/Unix系统编程手册》读书笔记24章**
  • .net oracle 连接超时_Mysql连接数据库异常汇总【必收藏】
  • .NET中 MVC 工厂模式浅析
  • .vue文件怎么使用_我在项目中是这样配置Vue的
  • @Autowired @Resource @Qualifier的区别
  • @RequestMapping处理请求异常
  • @Transactional 详解
  • [20150629]简单的加密连接.txt
  • [Asp.net mvc]国际化
  • [C#][DevPress]事件委托的使用
  • [CF]Codeforces Round #551 (Div. 2)
  • [CISCN2021 Quals]upload(PNG-IDAT块嵌入马)
  • [docker] Docker的数据卷、数据卷容器,容器互联
  • [HCIE] IPSec-VPN (手工模式)