mysql学习笔记(七)—— MySQL内连接和外连接
MySQL内连接(inner join on)
MySQL的内连接使用inner join on,它的效果跟使用where是一样的,如果联结的是两个表,那么需要左右的条件或者说字段是需要完全匹配的。
来看个例子:有两张表customers客户表和orders订单表,外键是cust_id,我们需要知道哪些客户有订单
select customers.cust_id,orders.order_num from customers , orders where customers.cust_id = orders.cust_id;
如果我们使用内连接的话就可以这样写:
select customers.cust_id,orders.order_num from customers inner join orders on customers.cust_id = orders.cust_id;
但是如果我除了这些有有客户的订单,我还想拿到所有的订单信息,那么怎么办呢?
MySQL外连接(left,right)
select customers.cust_id,orders.order_num from customers right outer join orders on customers.cust_id = orders.cust_id;
外连接包含左右连接,
左连接的结果是除了匹配条件的数据还包含左边表中的所有数据
右连接的结果是除了匹配条件的数据还包含右边表中的所有数据
上面的那个语句的输出结果是这样的:
为了做个比较,我在customers表中也做了一条数据,该数据并没有订单信息,我们使用左连接来看下:
select customers.cust_id,orders.order_num from customers left join orders on customers.cust_id = orders.cust_id;
看下结果:
这样应该就能很清晰看出内连接和外连接的作用了吧。
MySQL使用带聚集函数的联结
上面只是想知道哪些客户有订单,假如我们想看下每个客户都有多少订单呢?这就需要用到之前学过的聚集函数了
select customers.cust_name,customers.cust_id,count(orders.order_num) as counts from customers inner join orders on customers.cust_id = orders.cust_id group by customers.cust_id;
查看输出结果:
以上就是一些高级联结的使用。
mysql学习笔记(七)—— MySQL内连接和外连接的更多相关文章
- mysql查询语句(mysql学习笔记七)
		Sql语句 一般顺序GHOL : group by,having ,order by,limit 如果是分组,应该使用对分组字段进行排序的group by语法 ... 
- 吴裕雄--天生自然MySQL学习笔记:MySQL 安装
		所有平台的 MySQL 下载地址为: MySQL 下载:https://dev.mysql.com/downloads/mysql/ 注意:安装过程我们需要通过开启管理员权限来安装,否则会由于权限不足 ... 
- 吴裕雄--天生自然MySQL学习笔记:MySQL 运算符
		要介绍 MySQL 的运算符及运算符的优先级. MySQL 主要有以下几种运算符: 算术运算符 比较运算符 逻辑运算符 位运算符 算术运算符 MySQL 支持的算术运算符包括: 在除法运算和模运算中, ... 
- 吴裕雄--天生自然MySQL学习笔记:MySQL 临时表
		MySQL 临时表在我们需要保存一些临时数据时是非常有用的.临时表只在当前连接可见,当关闭连接时,Mysql会自动删除表并释放所有空间. MySQL临时表只在当前连接可见,如果使用PHP脚本来创建My ... 
- 吴裕雄--天生自然MySQL学习笔记:MySQL 事务
		MySQL 事务主要用于处理操作量大,复杂度高的数据.比如说,在人员管理系统中,你删除一个人员,你即需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这样,这些数据库操作语句就构成 ... 
- 吴裕雄--天生自然MySQL学习笔记:MySQL UNION 操作符
		MySQL UNION 操作符用于连接两个以上的 SELECT 语句的结果组合到一个结果集合中.多个 SELECT 语句会删除重复的数据. 语法 MySQL UNION 操作符语法格式: SELECT ... 
- 吴裕雄--天生自然MySQL学习笔记:MySQL 管理
		启动及关闭 MySQL 服务器 Windows 系统下 在 Windows 系统下,打开命令窗口(cmd),进入 MySQL 安装目录的 bin 目录. 启动: cd c:/mysql/bin mys ... 
- 吴裕雄--天生自然MySQL学习笔记:MySQL 导入数据
		1.mysql 命令导入 使用 mysql 命令导入语法格式为: mysql -u用户名 -p密码 < 要导入的数据库数据(runoob.sql) 实例: # mysql -uroot -p12 ... 
- 吴裕雄--天生自然MySQL学习笔记:MySQL 处理重复数据
		有些 MySQL 数据表中可能存在重复的记录,有些情况允许重复数据的存在,但有时候我们也需要删除这些重复的数据. 防止表中出现重复数据 可以在 MySQL 数据表中设置指定的字段为 PRIMARY K ... 
- 吴裕雄--天生自然MySQL学习笔记:MySQL GROUP BY 语句
		GROUP BY 语句根据一个或多个列对结果集进行分组. 在分组的列上我们可以使用 COUNT, SUM, AVG,等函数. GROUP BY 语法 SELECT column_name, funct ... 
随机推荐
- springboot 集成 freemarker
			前面我们已经实现了thymeleaf模板,其实freemarker和thymeleaf差不多,都可以取代JSP页面,实现步骤也差不多,我们来简单实现一下 引入pom.xml依赖如下 <depen ... 
- javascript --- 递归的简单理解
			递归函数大家都应该比较熟吧?那么,如何在JavaScript中书写一个完美的递归函数呢?且听我娓娓道来. 递归函数 写的时候,查了一下维基百科对递归函数的定义,恕我愚钝,简直太深奥了!所以,我还是简单 ... 
- Mac下安装和使用GunPG(GPG)
			GPG是加解密的工具,亦可以用于签名.非对称加解密.需要公钥和私钥. mac下安装:brew install gpg 使用gpg工具校验下载文件的完整性,从官网下载KEYS和asc文件:gpg --i ... 
- andrid对不能导入的类,知道类路径怎样使用该类
			andrid对不能导入的类,知道类路径怎样使用该类?使用java的反射机制. 下边是一个样例. MTK平台对Android源生的Telephone接口进行了扩展,加入了一个TelephonyManag ... 
- python--函数程序分析
			写函数,用户传入修改的文件名,与要修改的内容,执行函数,完成整个文件的批量修改操作 import os #加载模块 def xiu(a,b,c): #三个接受值的形参 f = open(a,encod ... 
- 压力测试工具ab,wrk,locust简介
			ab 无疑是目前最常见的压力测试工具.其典型用法如下: shell> ab -k -c 100 -t 10 http://domain/path 其中,参数「c」表示的是并发, 参数「t」表示的 ... 
- 阿里云 访问控制RAM
			https://help.aliyun.com/product/28625.html 为用户分配最小权限 别名主要用于 RAM 用户登录以及成功登录后的显示名. 强烈建议您给主账号绑定多因素认证. 设 ... 
- ORACLE时间函数(SYSDATE)简析
			ORACLE时间函数(SYSDATE)简析 分类: 原文地址:ORACLE时间函数(SYSDATE)简析 作者:skylway 加法 select sysdate,add_months(sysdate ... 
- Android中通过GPS或NetWork获取当前位置的经纬度
			今天在Android项目中要实现一个通过GPS或NetWork来获取当前移动终端设备的经纬度功能.要实现该功能要用到Android Framework 中的 LocationManager 类.下面我 ... 
- 【BZOJ1042】[HAOI2008]硬币购物 容斥
			[BZOJ10492][HAOI2008]硬币购物 Description 硬币购物一共有4种硬币.面值分别为c1,c2,c3,c4.某人去商店买东西,去了tot次.每次带di枚ci硬币,买si的价值 ... 
