【MySQL必知必会(十三)】【创建高级联结】
上一篇:【MySQL必知必会(十二)】【联结表】
+++++++++++++开始线++++++++++++++++
文章目录
- 一、 使用表别名
- 二、 使用不同类型的联结
- 2.1 自联结
- 2.2 自然联结
- 2.3 外部联结
- 三、 使用带聚集函数的联结
- 四、 使用联结和联结条件
一、 使用表别名
mysql> SELECT cust_name, cust_contact-> FROM customers AS c, orders AS o, orderitems AS oi-> WHERE c.cust_id = o.cust_id-> AND oi.order_num = o.order_num-> AND prod_id = 'TNT2';
表别名不仅能用于WHERE子句,还可以用于SELECT的列表、ORDER BY子句以及语句的其他部分。
表别名知在查询执行中使用。与列别名不一样,表别名不返回到客户机
二、 使用不同类型的联结
还有自联结、自然联结和外部联结
2.1 自联结
ID为DTNTR存在问题,查询生产该物品的供应商生产的其他物品是否也存在这些问题
mysql> SELECT prod_id, prod_name-> FROM products-> WHERE vend_id = (SELECT vend_id-> FROM products-> WHERE prod_id = 'DTNTR');
使用联结的相同查询
mysql> SELECT p1.prod_id, p1.prod_name-> FROM products AS p1, products AS p2-> WHERE p1.vend_id = p2.vend_id-> AND p2.prod_id = 'DTNTR';
2.2 自然联结
mysql> SELECT c.*, o.order_num, o.order_date,-> oi.prod_id, oi.quantity, OI.item_price-> FROM customers AS c, orders AS o, orderitems AS oi-> WHERE c.cust_id = o.cust_id-> AND oi.order_num = o.order_num-> AND prod_id = 'FB';
2.3 外部联结
检索所有客户及其订单(内部联结)
mysql> SELECT customers.cust_id, orders.order_num-> FROM customers INNER JOIN orders-> ON customers.cust_id = orders.cust_id;
外部联结
mysql> SELECT customers.cust_id, orders.order_num-> FROM customers LEFT OUTER JOIN orders-> ON customers.cust_id = orders.cust_id;
三、 使用带聚集函数的联结
检索所有客户及每个客户所下的订单数
mysql> SELECT customers.cust_name,-> customers.cust_id,-> COUNT(orders.order_num) AS num_ord-> FROM customers INNER JOIN orders-> ON customers.cust_id = orders.cust_id-> GROUP BY customers.cust_id;
四、 使用联结和联结条件
1.注意所使用的联结类型
2.保证所使用正确的联结条件
3.应该总是提供联结条件
4.在一个联结中可以包含多个表,甚至对于每个联结可以采用不同的联结类型
+++++++++++++结束线++++++++++++++++
下一篇:【MySQL必知必会(十四)】【组合查询】
【MySQL必知必会(十三)】【创建高级联结】相关推荐
- 《SQL必知必会》第十三课 创建高级联结表 使用不同类型的联结 使用带聚集函数的联结 使用联结时应注意的问题
第十三课 创建高级联结表 #使用表别名的原因 #不同的联结类型以及每类联结所使用的语法 #如何与联结一起使用聚集函数 #使用联结时的注意问题 一.使用表别名 [1]前面(第七课)介绍使用别名引用被检索 ...
- mysql各种联结的区别_mysql必知必会-创建高级联结
使用表别名 使用别名引用被检索的表列 别名除了用于列名和计算字段外,SQL还允许给表名起别名.这样做 有两个主要理由: 缩短SQL语句: 允许在单条 SELECT 语句中多次使用相同的表. 可以看到, ...
- 如何用mysql创建orders表_《MySQL必知必会》学习笔记
本书所用的表: 68.png 67.png 66.png 65.png 64.png 63.png 第一章:了解SQL 数据库:保存有组织的数据的容器(通常是一个文件或一组文件). 数据库软件:DBM ...
- 根据SQL必知必会学习SQL(MYSQL)
很久都没有整理SQL语句了,遇到让写SQL语句的题也很迷茫,所以就重拾一下知识,本文章根据SQL必知必会进行梳理 文章目录 一.检索所有列 1.select 1.1检索单个列 1.2 检索多个列 1. ...
- MySQL必知必会笔记(一)基础知识和基本操作
第一章 了解MySQL 数据库 保存有组织的数据的容器.(通常是一个文件或一组文件) 人们经常使用数据库这个术语代替他们使用的软件.这是不正确的,确切的说,数据库软件应称为DBM ...
- MySQL必知必会pdf网盘下载+每章总结
书籍下载 链接:https://pan.baidu.com/s/18g0XgavniXQzp6RlOxnwnQ 密码:j8pm 目录 书籍下载 MySQL必知必会 第二章 连接mysql 第三章 连接 ...
- 读书笔记系列1——MySQL必知必会
读书笔记系列1--MySQL必知必会 文章目录 读书笔记系列1--MySQL必知必会 MySQL官方文档:https://dev.mysql.com/doc/ 第一章 数据库基础 *2021.11.2 ...
- 30 分钟读完《MySQL 必知必会》
第一章 了解 SQL 介绍几个数据库的概念 数据库(database) 通过DBMS创建和操纵的保存有组织的数据的容器(通常是一个文件或一组文件). 数据库软件/数据库管理系统(DBMS)访问数据库, ...
- 《MySQL必知必会》学习笔记十(增删改语句使用)------掌握部分
MySQL必知必会知识预览 第一章--了解SQL 第二章--MySQL简介 第三章--使用MySQL 第四章--检索数据 第五章--排序检索数据 第六章--过滤数据 第七章--数据过滤 第八章--用通 ...
最新文章
- 对AI行业未来发展的一些看法
- rabbitmq 启动报错 Failed to get nic info
- Java集合(3)--Iterator迭代器
- dedecms切换模板css,DEDECMS的模板的css的详细解释 -电脑资料
- png文件合并_程序员学习之在Python中使用PDF:阅读、旋转、合并和拆分
- Python开发基础 day7 迭代器
- 光照强度曲线图android,有关光合作用的曲线图的分析(一) - xyz的日志 - 网易博客...
- centos 7 下使用dvorak键盘布局
- 【react】 flux 的数据修改流程,类似与vuex那样,但是又有区别
- 二叉树的遍历-C++
- 【学堂在线数据挖掘:理论方法笔记】第l六天(3.31)
- iOS开发日记39-上传ERROR-90535,90529,90049
- 字体设计 css_设计好CSS字体堆栈的三个步骤
- android获取显示屏尺寸大小,Android 屏幕各尺寸的获取
- html dom onblur,html的DOM中Event对象onblur事件用法实例
- jetson的学习资料总结
- 【Gitlab】配置、运行Gitlab容器实例及简单使用测试
- 拼团返利模式玩法VS最新拼团的商业模式
- c++ toi_TOI的完整形式是什么?
- Windows程序设计 读书笔记(3)
热门文章
- [oeasy]python0097_苹果诞生_史蒂夫_乔布斯_沃兹尼亚克_apple_I
- 搜狐克己节目《隐秘而无穷》 称要“名利双收”
- [附源码]Nodejs计算机毕业设计西安凯特物流订单管理系统Express(程序+LW)
- vue cli配置代理解决跨域问题
- Python计算骰子出现的概率
- centos7实现磁盘挂载,解挂,开机自动挂载,解决挂载文件覆盖问题
- SpringBoot解决不安全的HTTP方法漏洞配置
- 我的世界制作服务器rj,我的世界星系mod常用工具制作方法
- 手把手教你搭建属于自己的PyQt5-YOLOv5目标检测平台(保姆级教程)
- iOS网络缓存扫盲篇 - 使用两行代码就能完成80%的缓存需求