了解子查询的最好方法就是看例子

现在我们来看看orders表和orderitems表

orders表

orderitems表

现在我想要查找所有订购物品id为TNT2的客户,怎么查?
orderitems里有prod_id
orders表里有cust_id
但这两项在两张表里,怎么查?
我们说,关系表关系表,两张表中肯定有关联的项,一比较,发现都有一个order_num列。下面是检索思路

  • 通过orderitems表由prod_id=TNT2检索出匹配的order_num
  • 通过orders表由order_num匹配出对应的cust_id

思路有了,下面就是敲代码

SELECT order_num
FROM orderitems
WHERE prod_id = "TNT2";

得到符合条件的两单为20005和20007,现在就是找下这两单的顾客

SELECT cust_id
FROM orders
WHERE order_num IN (20005, 20007);

以上便是直接的实现过程,下面就用子查询的方式来写,其实就是嵌套

SELECT cust_id
FROM orders
WHERE order_num IN (SELECT order_numFROM orderitemsWHERE prod_id = "TNT2");

再做一个练习。如果我想得到每个客户的订单总数,该怎么写

客户表(里面有cust_id)

订单表(里面也有cust_id)

要想得出所有顾客的订单数,我们先想想一个顾客的订单数怎么写

SELECT cust_id, COUNT(*) AS cust_order
FROM orders
WHERE cust_id = 10001;

现在推广到所有客户的订单数呢?

SELECT cust_name,(SELECT COUNT(*)FROM ordersWHERE orders.cust_id = customers.cust_id) AS orders
FROM customers;

好好想一下上面的思路,首先我们最终需要的是一张cust_name和orders的表,cust_name由customers表提供,写在最外面,另外一个列orders表需要用计算字段COUNT()来汇总,而且是对每一个顾客进行订单汇总。这里用WHERE来选择条件。由于orders表和customers表都有cust_id,因此我们用完全限定列名

MySQL-子查询(嵌套)相关推荐

  1. MySQL 子查询 嵌套查询

    MySQL 子查询 嵌套查询 一.带IN关键字的子查询 二.带EXISTS关键字的查询 三.带ANY.SOME 关键字的子查询 四.带ALL 关键字的查询 自言自语 一.带IN关键字的子查询 使用IN ...

  2. MySQL子查询嵌套查询

    子查询:嵌套在其他查询中的查询. 有三张表分别如下: customers: 存储顾客信息 orderitems:只存储订单信息,无客户信息 orders:存储订单号和顾客id 注意:一般在子查询中,程 ...

  3. MySQL子查询 嵌套查询

    子查询:嵌套在其他查询中的查询. 有三张表分别如下: customers: 存储顾客信息 orderitems:只存储订单信息,无客户信息 orders:存储订单号和顾客id 注意:一般在子查询中,程 ...

  4. mysql表子查询(嵌套查询)

    mysql表子查询(嵌套查询): 1.什么是子查询: 子查询是指嵌入在其它 sql 语句中的 select 语句,也叫嵌套查询 -- 如何显示与 SMITH 同一部门的所有员工? -- 1.先查出sm ...

  5. 三、MySQL子查询学习笔记(标量子查询、列子查询、行子查询、表子查询 详解)

    三.MySQL子查询学习笔记 7:子查询 含义: 一条查询语句中又嵌套了另一条完整的select语句,其中被嵌套的select语句,称为子查询或内查询:在外面的查询语句,称为主查询或外查询 分类: 一 ...

  6. sql 子查询 嵌套查询_SQL子查询– SQL中的嵌套查询

    sql 子查询 嵌套查询 In the real world, there are times when we need a particular set of data but we don't h ...

  7. MySQL——子查询用法

    文章目录 MySQL--子查询用法 1.子查询概述 2.子查询的使用 2.1.单行子查询 2.2.多行子查询 2.3.相关子查询 子查询练习题 MySQL--子查询用法 1.子查询概述 子查询简介 子 ...

  8. mysql子查询外部查什么 内部查什么,MySQL子查询

    MySQL子查询 MySQL中的子查询是一个查询,它嵌套在另一个SQL查询中,并与各种运算符一起嵌入SELECT,INSERT,UPDATE或DELETE语句.我们还可以将子查询与另一个子查询嵌套在一 ...

  9. PHP MySQL 子查询(subquery)语法与用法实例

    MySQL 子查询 子查询是将一个 SELECT 语句的查询结果作为中间结果,供另一个 SQL 语句调用.MySQL 支持 SQL 标准要求的所有子查询格式和操作,也扩展了特有的几种特性. 子查询没有 ...

  10. [MySQL | Python] MySQL子查询及其对于的Python操作

    目录 1 标量子查询 2 关联子查询 3 普通子查询 导入数据 分别在MySQL和Python中导入数据. import pandas as pd milk_tea = pd.read_excel(' ...

最新文章

  1. MySQL主从复制原理图
  2. 论强化学习的根本缺陷
  3. Max-Flow Min-Cut
  4. 【机器学习】机器学习实践中的 7 种常见错误
  5. arcgis10.2 sde配置
  6. 毕业设计后续工作目标
  7. Oracle递归查询示例分析
  8. java parseint(12.0)_java的parseint
  9. Visual Studio2019使用nmake编译调用libcurl库
  10. 计算机电子智能化贰级,电子与智能化工程专业承包资质分为一级、二级。
  11. Excel学习2:折线图的渐变
  12. 正定与半正定矩阵,判别的方法不能混用,否则出错
  13. PTA 1075 链表元素分类
  14. 外部磁盘_U盘识别与格式化问题_u盘格式化失败,导致无法识别/android格式化U盘失败
  15. JavaEE(10)Spring中的注解开发、静态/动态代理
  16. 【MacOS】java环境配置
  17. 热点追踪 | 数据,想说爱你不容易
  18. 初步接触核心网之5G核心网系统安装
  19. 一起赚美金:Niche站变现案例分享(2)
  20. 闲鱼基于 Flutter 的移动端跨平台应用实践

热门文章

  1. 四平方和定理(每个正整数均可表示为4个平方数的和)
  2. DBeaver 连接达梦数据库
  3. Android中实现播放背景音乐功能
  4. GetKeyState 和 GetAsyncKeyState 区别
  5. Enzo丨Enzo IHC酶抗原回收试剂解决方案
  6. GSoC: GitHub Checks API 项目第一阶段总结
  7. Python教程:批量合成PDF
  8. Python斐波拉契数列
  9. 第四部分、JEECG-BOOT 微服部署文档
  10. Java中byte与short、int、long互转(包含大端,小端)