子查询:嵌套在其他查询中的查询。

有三张表分别如下:

customers: 存储顾客信息

orderitems:只存储订单信息,无客户信息

orders:存储订单号和顾客id

注意:一般在子查询中,程序先运行在嵌套在最内层的语句,再运行外层。因此在写子查询语句时,可以先测试下内层的子查询语句是否输出了想要的内容,再一层层往外测试,增加子查询正确率。否则多层的嵌套使语句可读性很低。

子查询训练:

训练1:

查询买了商品为’TNT2’的顾客信息

子查询中涉及3张表的订单。因此分三步,1. 在orderitems里找出TNT2的订单号;2. 在orders里找出第一步找出的订单号对应的客户id;3. 在customers中找出第二步对应客户的所有信息。

1. 在orderitems里找出TNT2的订单号

SELECT order_num FROM orderitems

WHERE prod_id='TNT2';

2. 在orders里找出第一步找出的订单号对应的客户id

SELECT cust_id FROM orders

WHERE order_num

IN (SELECT order_num FROM orderitems WHERE prod_id='TNT2');

3. 在customers中找出第二步对应客户的所有信息

SELECT * FROM customers

WHERE cust_id

IN (SELECT cust_id FROM orders WHERE order_num IN

(SELECT order_num FROM orderitems WHERE prod_id='TNT2'));

这样就得到结果啦~

子查询一般与IN操作符结合使用,也可用=><等。

另外,子查询还可以用于计算字段。

训练2:

如,想要查询每个客户的订单数

分步思考:1. 查询某个客户的订单数;2. 某个客户改为所有客户。

1. 查询某个客户的订单数

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

2. 某个客户改为所有客户

SELECT cust_name, cust_state,

(SELECT COUNT(*) FROM orders WHERE orders.cust_id=customers.cust_id)

AS orders1

FROM customers

ORDER BY cust_name;

注意:当多个表都拥有同样的列名如cust_id时,一定要完全限定列名。

MySQL子查询嵌套查询相关推荐

  1. MySQL 子查询 嵌套查询

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

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

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

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

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

  4. 2.4.3 Mybatis 高级查询, 复杂映射, 返回主键, 动态SQL if, set, foreach, 核心配置文件深入,plugins标签, 多表查询, 嵌套查询

    目录 Mybatis 复杂映射&配置文件深入 一 Mybatis高级查询 1.1 ResutlMap属性 1.2 多条件查询(三种) 1.3 模糊查询 二 Mybatis映射文件深入 2.1 ...

  5. 连接查询--嵌套查询

    连接查询–嵌套查询 一.单层嵌套查询 嵌套查询分为相关嵌套查询.不相关嵌套查询.区分条件是分离之后是否可以单独查询. 不相关嵌套查询:由里向外查询,先执行子查询,得到的结果用来构造外部查询的条件.子查 ...

  6. 数据库SQL语言学习--上机练习2(连接查询 嵌套查询)(持续更新中)

    数据库SQL语言学习--上机练习2(连接查询 嵌套查询)(持续更新中) 上机练习2 1.              启动SQL Server 2008中的 SQL Server Management ...

  7. mysql多个嵌套查询

    MySQL 中多个Left join 子查询 好久没写sql了,今天突然接到产品的需求,要拉取线上数据一个文章的统计,我心里就万马奔腾-TM,不是有前端埋点和事件埋点... 简单的联表查询 SELEC ...

  8. mysql 子表 关联查询语句_MySQL基本SQL语句之单表查询、多表查询和子查询

    一.简单查询: 基本语法:SELECT * FROM tb_name;查询全部 SELECT field1,field2 FROM tb_name; 投影 SELECT [DISTINCT] * FR ...

  9. mysql连接与嵌套查询_数据库之嵌套查询与连接查询

    嵌套查询 单值嵌套查询 值返回结果是一个值的嵌套查询称为单值嵌套查询 对Sales数据库,列出市场部的所有员工的编号 USE Sale GO SELECT employee_id FROM emplo ...

  10. mysql order by 嵌套查询_MySQL第三章——嵌套查询

    嵌套查询 在SQL语句中,一个 select - from - where 语句是一个查询块,将一个查询块嵌套在另一个查询块的 where 字句或者 having 短语的条件中的查询称为 嵌套查询. ...

最新文章

  1. 李沐:用随机梯度下降来优化人生!
  2. linux c++ 函数 查看,在C++ man pages中查询C++的函数
  3. Nginx在安装过程经常出现的问题
  4. 【Java面试宝典】深入理解JAVA虚拟机
  5. 数据湖之iceberg系列(一)iceberg能做什么
  6. JavaScript中数组slice和splice的对比小结
  7. java学习(55):定义一个抽象类的继承
  8. 2021高通人工智能应用创新大赛踩坑指南
  9. Matlab中CIC滤波器的应用
  10. echarts地图下钻可缩放
  11. 雷达传感器应用,微波雷达感应模块,物联网传感技术发展
  12. AUTOSAR岌岌可危?主机厂+Tier1+初创公司要“联手起义”
  13. python 英语翻译 excel_Python调用百度翻译api批量翻译Excel这工作效率
  14. ruby--数值类(Numeric)
  15. PPC与PC无线连接(Wi-Fi)
  16. TIA博途中FC功能块的介绍与管脚定义
  17. java多态猫狗吃骨头_javaSE学习(6):面向对象:多态的两个经典案例(猫狗案例和南北方人案例)...
  18. Debugging Tools for Windows (WinDbg)的使用
  19. TreeHelper 是一个将含有id,parentId属性的JavaBean转化为层次分明的树形结构的工具类。
  20. 【解决】android设备有root权限,执行“adb disable-verity”命令报错“verity cannot be disabled/enabled - USER build”

热门文章

  1. 使用命令对象代替switch语句的写法示例
  2. sql数据黑马程序员——SQL入门
  3. 用Unity3D实现可展开公告版
  4. Web服务器漏洞和安全
  5. [论文阅读] (11)ACE算法和暗通道先验图像去雾算法(Rizzi | 何恺明老师)
  6. [译] APT分析报告:09.伊朗APT34更新武器库——SideTwist变体
  7. 78. Subsets 子集
  8. 2020\Simulation_1\6.递增三元组
  9. 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言—— 1053:最大数输出
  10. 【Ubuntu】 Ubuntu16.04搭建Samba服务