1.子查询

一个查询依赖于另一个查询,则它们之间存在父子关系,称这种查询关系为子查询。

2.练习

查询用户为"小明"的订单详情:

方式1:

-->select id from user where username = '小明'; //查询的小明id为3

-->select * from orders where user_id = 3;//查询小明的id值后,在订单表中将该id值作为条件再次进行查询。

方式2:上述方式过于繁琐,我们也可以合并查询

select * from orders where user_id = (select id from user where username = '小明');

查询出订单的价格大于300的所有的用户信息:

方式1:

-->select user_id from orders where totalprice > 300;

-->select * from user where id in(?,?,?,?);

方式2:合并上述查询

查询订单大于300的订单信息及相关用户的信息:

来一波查询如下。。

select orders.*,user.* from orders, user where orders.totalprice > 300;

观察上述结果,好像不是我们需要的结果,笛卡尔积结果查询了。再次改动,使用内连接查询方式:

select orders.*,user.* from orders, user where user.id = orders.user_id and orders.totalprice > 300;

但是,我们要使用子查询方式获取结果集,再次改动,使用子查询方式:(将一个查询的结果作为一张临时表)

select user.*,tmp.* from user,(select orders from orders where totalprice > 300) as tmp where user.id = tmp.user_id;

select tmp.*,user* from user,(select orders from orders where totalprice > 300) as tmp where user.id = tmp.user_id;

【注意:调换查询表顺序,显示的结果内容一样,仅方式不同。同时,我们也给表定义了一个别名,关键字“as”,别名“tmp”】

格式:表 [as] 别名


人的一生中,最光辉的一天并非是功成名就那天,而是从悲叹与绝望中产生对人生的挑战,以勇敢迈向意志那天。愿你就像早晨八九点钟的太阳,活力十足,永远年轻。

MySQL(13)-----多表查询(子查询)相关推荐

  1. MYSQL优化派生表(子查询)在From语句中的

    Mysql 在5.6.3中,优化器更有效率地处理派生表(在from语句中的子查询): 优化器推迟物化子查询在from语句中的子查询,知道子查询的内容在查询正真执行需要时,才开始物化.这一举措提高了性能 ...

  2. mysql外表内表_mysql 子查询 将最外表带入子查询内2层 的另一种解决方法

    SELECT ( select count(*)  from  BORROW_LIST where DELETE_FLAG=0 and BORROW_ID=c.BORROW_ID group by   ...

  3. mySQL学习记录(局域网连接/基础查询/条件查询/常见函数/窗口函数/表连接/子查询/插修删建表)

    一些基础概念 DB 数据库 存储数据的容器 DBMS 数据库管理系统 又称数据库软件.产品如mysql/oracle/db2/sqlserver SQL 结构化查询语言 是所有的DBMS都使用的一种D ...

  4. MySQL数据库多表查询,子查询

    写博客的第四天,今天来点数据库的操作,温故而知新,在前进的路上,多看看自己曾经走过的路,不要忘了自己是怎么一步一步走过来的,对于前方未知的道路,不要轻言放弃. 今天的内容全部是MySQL里面的语句,基 ...

  5. MySQL核心查询-排序 分组 聚合 多表查询 合并查询 子查询

    目录 一.单表查询 排序 聚合函数 分组 limit关键字 二.SQL约束 主键的自增 DELETE和TRUNCATE对自增长的影响 三.多表查询 外键约束 删除外键约束 多表查询的分类 内连接查询 ...

  6. mysql 子表_MySQL子查询,派生表和通用表达式

    一:子查询 1.介绍 在另一个查询(外部查询)中嵌套另一个查询语句(内部查询),并使用内部查询的结果值作为外部查询条件. 2.子查询在where中 SELECT customerNumber, che ...

  7. 数据库 day60,61 Oracle入门,单行函数,多表查询,子查询,事物处理,约束,rownum分页,视图,序列,索引

    1.    oracle介绍 ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的 ...

  8. MySQL学习(四、子查询)

    一.子查询 子查询指的就是在一个查询之中嵌套了其他的若干查询,在使用select语句查询数据时,有时候会遇到这样的情况,在where查询条件中的限制条件不是一个确定的值,而是一个来自于另一个查询的结果 ...

  9. mysql upload_关于mysql数据库里的 upload子查询问题

    报错原因:mysql规定了:upload子查询问题,不能像我这样写,这是mysql目前的版本缺陷 我是这样写道:UPDATE vote_items set times=((SELECT times f ...

  10. sql 基础语法 创建数据库和数据表 数据增删改查 分组查询 子查询回顾

    参考链接: SQL教程 MySQL教程 一.创建数据库语法 --用master数据库 use master --判断数据库是否存在,若存在则删除 if exists (select * from sy ...

最新文章

  1. 如何用虚幻引擎4和C++开发游戏?斯坦福相关课程上线
  2. MyEclipse快捷键与插件大全
  3. python关键字匹配_关于python:在遇到某个关键字后匹配值的正则表达式
  4. JVM内存模型及垃圾收集策略解析(一)
  5. EF Code First 学习笔记:关系(转)
  6. 光盘隐藏文件夹 linux,linux常用命令大全2--挂载/dpkg/文件系统分析/apt/光盘/关机...
  7. 【Python实例第7讲】真实数据集的异常检测
  8. java怎么销毁session_java怎么销毁session?
  9. 设备无法连接到你的计算机,此硬件设备未连接到计算机(代码45) | MOS86
  10. 【转载】C++编码规范与指导
  11. 系统架构设计师考试题库笔记重点3:嵌入式系统设计
  12. 王慧文清华产品课(二)
  13. contextmenu 鼠标右键菜单功能
  14. 台式电脑出厂编号怎么查_出厂编号的查询方法
  15. 服务号和订阅号之间的区别,企业适合选择哪一个?
  16. 创建Hive外部表,关联HDFS文件
  17. 激活函数(1)Sigmoid激活函数
  18. 摇奖机是按照金字塔的原理设计的
  19. eclipse 项目有红叉(解决方法)
  20. CC254x简介-CC2541/CC2540

热门文章

  1. ElasticSearch全文搜索引擎之索引和文档的API操作详解
  2. Spring Cloud Alibaba入门简介
  3. Java常见算法之二分法查找算法详解
  4. 又臭又长的if...else太多了,不知道如何消除?
  5. Map集合之ConcurrentHashMap
  6. mysql去除重复的数据
  7. 使用Spring Data JPA作为持久层框架
  8. Java中String、StringBuffer和StringBuilder的区别和堆栈内存分配
  9. 「MYSQL」MYSQL中的int(11)到底代表什么意思?
  10. .Net中常用的几种ActionResult