## 关联查询
> * 交叉连接( cross join )
> * 自然连接( natural join )
> * 内连接( inner join )可简写为:join
> * 外连接( left join / right join );left outer join 简写为:left join
> * 联合查询( union / union all)
> * 全连接( full join );mysql 不支持全连接
> mysql对任何关联都执行嵌套循环关联操作,考虑性能影响
**交叉连接**
```
select * from a,b(,c) 或者
select * from a cross join b (cross join c)
```
* 没有任何关联条件,结果是笛卡尔积,结果集会很大,没有意义,很少使用
**自然连接**
```
select * from a natural join b
```
* **自然连接是一种特殊的等值连接**,他要求两个关系表中进行连接的必须是相同的属性列(名字相同),无须添加连接条件,**并且在结果中消除重复的属性列。**
**内连接**
```
select * from a,b wher a.id = b.id 或者
select * from a inner join b on a.id = b.id
```
* 多表中同时符合某种条件的数据记录的集合
* 等值连接:on a.id = b.id
* 不等值连接:on a.id > b.id
* 自连接: `select * from a t1 inner join a t2 on t1.id = t2.pid`
**外连接**
```
select * from a left join b on a.id = b.id
```
* 左外连接:left join, 以左表为主,先查询出左表,按照 on 后的关联条件匹配右表,没有匹配到用 `null` 填充
* 右外连接:right join, 以右表为主,先查询出右表,按照 on 后的关联条件匹配左表,没有匹配到用 `null` 填充
**联合查询**
```
select * from a union select * from b
```
* 把多个结果集集中在一起,`union 前`的结果为基准,需注意联合查询的列数要相等,相同的记录行会合并
* 使用 `union all` 不会合并重复的记录行
**全连接**
```
select * from a left join b on a.id = b.id union
select * from a right join b on a.id = b.id
```
* mysql 不支持全连接,通过 `left join` 和 `union` 和 `right join` 联合使用 实现
**嵌套查询**
用一条sql语句的结果作为另外一条sql语句的条件
`select * from a where id in (select id from b)`
- 简介
- PHP
- 字符串函数
- 数组函数
- 正则
- 加密函数
- 面向对象
- 关键字
- 设计模式
- 魔术方法
- 机制扩展
- 会话机制
- PHP框架
- laravel
- 问题
- swoole
- easyswoole
- workerman
- 数据库
- Sphinx
- MongoDB
- MemCache
- Redis
- 基础操作
- 数据类型
- 持久化
- 分布式锁
- 内存模型
- redis高级特性
- MySql
- 基础操作
- 数据类型
- 数据表引擎
- 锁机制
- 事务处理
- 存储过程
- 触发器
- 索引
- 关联查询
- 分析SQL语句-优化查询
- 分区分表
- 主从复制
- MySql安全性
- 网络协议
- HTTP
- header详解
- 状态码
- nginx-配置
- 逻辑算法
- 时间和空间复杂度
- 常见算法
- 数据结构
- 核心
- 进程、线程、协程
- 存储容量-计量单位
- 开发软件及配置
- 版本控制器
- Git
- Fidder
- Fidder-Android7
- 自动化部署
- Jenkins
- supervisor
- Elasticsearch
- LogStash
- RabbitMQ
- AB测试
- JAVA-JDK
- FileBeat
- PhpStorm
- Composer
- Linux
- API安全
- 高并发及大流量相关概念
- 网站优化
- WEB
- Electron