MySQL子查询嵌套查询
子查询:嵌套在其他查询中的查询。
有三张表分别如下:
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子查询嵌套查询相关推荐
- MySQL 子查询 嵌套查询
MySQL 子查询 嵌套查询 一.带IN关键字的子查询 二.带EXISTS关键字的查询 三.带ANY.SOME 关键字的子查询 四.带ALL 关键字的查询 自言自语 一.带IN关键字的子查询 使用IN ...
- mysql表子查询(嵌套查询)
mysql表子查询(嵌套查询): 1.什么是子查询: 子查询是指嵌入在其它 sql 语句中的 select 语句,也叫嵌套查询 -- 如何显示与 SMITH 同一部门的所有员工? -- 1.先查出sm ...
- sql 子查询 嵌套查询_SQL子查询– SQL中的嵌套查询
sql 子查询 嵌套查询 In the real world, there are times when we need a particular set of data but we don't h ...
- 2.4.3 Mybatis 高级查询, 复杂映射, 返回主键, 动态SQL if, set, foreach, 核心配置文件深入,plugins标签, 多表查询, 嵌套查询
目录 Mybatis 复杂映射&配置文件深入 一 Mybatis高级查询 1.1 ResutlMap属性 1.2 多条件查询(三种) 1.3 模糊查询 二 Mybatis映射文件深入 2.1 ...
- 连接查询--嵌套查询
连接查询–嵌套查询 一.单层嵌套查询 嵌套查询分为相关嵌套查询.不相关嵌套查询.区分条件是分离之后是否可以单独查询. 不相关嵌套查询:由里向外查询,先执行子查询,得到的结果用来构造外部查询的条件.子查 ...
- 数据库SQL语言学习--上机练习2(连接查询 嵌套查询)(持续更新中)
数据库SQL语言学习--上机练习2(连接查询 嵌套查询)(持续更新中) 上机练习2 1. 启动SQL Server 2008中的 SQL Server Management ...
- mysql多个嵌套查询
MySQL 中多个Left join 子查询 好久没写sql了,今天突然接到产品的需求,要拉取线上数据一个文章的统计,我心里就万马奔腾-TM,不是有前端埋点和事件埋点... 简单的联表查询 SELEC ...
- mysql 子表 关联查询语句_MySQL基本SQL语句之单表查询、多表查询和子查询
一.简单查询: 基本语法:SELECT * FROM tb_name;查询全部 SELECT field1,field2 FROM tb_name; 投影 SELECT [DISTINCT] * FR ...
- mysql连接与嵌套查询_数据库之嵌套查询与连接查询
嵌套查询 单值嵌套查询 值返回结果是一个值的嵌套查询称为单值嵌套查询 对Sales数据库,列出市场部的所有员工的编号 USE Sale GO SELECT employee_id FROM emplo ...
- mysql order by 嵌套查询_MySQL第三章——嵌套查询
嵌套查询 在SQL语句中,一个 select - from - where 语句是一个查询块,将一个查询块嵌套在另一个查询块的 where 字句或者 having 短语的条件中的查询称为 嵌套查询. ...
最新文章
- 李沐:用随机梯度下降来优化人生!
- linux c++ 函数 查看,在C++ man pages中查询C++的函数
- Nginx在安装过程经常出现的问题
- 【Java面试宝典】深入理解JAVA虚拟机
- 数据湖之iceberg系列(一)iceberg能做什么
- JavaScript中数组slice和splice的对比小结
- java学习(55):定义一个抽象类的继承
- 2021高通人工智能应用创新大赛踩坑指南
- Matlab中CIC滤波器的应用
- echarts地图下钻可缩放
- 雷达传感器应用,微波雷达感应模块,物联网传感技术发展
- AUTOSAR岌岌可危?主机厂+Tier1+初创公司要“联手起义”
- python 英语翻译 excel_Python调用百度翻译api批量翻译Excel这工作效率
- ruby--数值类(Numeric)
- PPC与PC无线连接(Wi-Fi)
- TIA博途中FC功能块的介绍与管脚定义
- java多态猫狗吃骨头_javaSE学习(6):面向对象:多态的两个经典案例(猫狗案例和南北方人案例)...
- Debugging Tools for Windows (WinDbg)的使用
- TreeHelper 是一个将含有id,parentId属性的JavaBean转化为层次分明的树形结构的工具类。
- 【解决】android设备有root权限,执行“adb disable-verity”命令报错“verity cannot be disabled/enabled - USER build”
热门文章
- 使用命令对象代替switch语句的写法示例
- sql数据黑马程序员——SQL入门
- 用Unity3D实现可展开公告版
- Web服务器漏洞和安全
- [论文阅读] (11)ACE算法和暗通道先验图像去雾算法(Rizzi | 何恺明老师)
- [译] APT分析报告:09.伊朗APT34更新武器库——SideTwist变体
- 78. Subsets 子集
- 2020\Simulation_1\6.递增三元组
- 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言—— 1053:最大数输出
- 【Ubuntu】 Ubuntu16.04搭建Samba服务