表连接分为内连接、外连接、全连接。
>[warning]mysql不支持全连接。
[TOC]
# 1. 内连接
```sql
写法1:
from A inner join B on A.列=B.列 inner join C on A.列/B.列=C.列;
-- A inner join B与A join B功能一样,表示A表和B表的交集。
写法2:(也叫等值连接;如果把where条件去掉,叫笛卡尔积)
from A,B where A.列=B.列;
from A,B,C where A.列=B.列 and A.列/B.列=C.列;
```
内连接注意事项:
* 大多数时候,表连接都根据主外键关系,但是如果创建表的时候,没有添加外键约束,不影响表连接的使用。
* 内连接大多数时候都是`A.列=B.列`,但是不一定是`=`,可能是`!=`、或者`<`、或者`>
`.
<br/>
# 2. 外连接
共有3种形式的语法。
(1)左外连接
```sql
-- 查询每个学生的考试信息(没有考试记录则用null替代)
select s.studentName, s.phone, r.*
from student s left join result r on s.studentNo=r.studentNo;
```
(2)右外连接
```sql
-- 查询每个学生的考试信息(没有考试记录则用null替代)
select s.studentName, s.phone, r.*
from result r right join student s on s.studentNo=r.studentNo;
```
(3)全连接(需要考虑mysql是否支持)
```sql
-- 全连接 mysql不支持
select s.studentName, s.phone, r.*
from result r full join student s on s.studentNo=r.studentNo;
```
<br/>
# 3. 表连接的特殊情况
A表可以与A表连接。
```sql
from A,A where A.column1=B.column2;
```
- MySQL
- MySQL是什么
- MySQL环境搭建
- centos7-MySQL8
- windows-MySQL8
- 数据库软件
- sqlyog软件安装
- navicat软件安装
- powerDesigner软件安装
- RDBMS术语
- SQL语句组成
- 数据库系统组成
- 数据库操作
- 数据表操作
- 查询语句
- 基本语法
- 子查询
- 表连接
- 查询语句执行顺序
- 事务
- 事务是什么
- 事务的作用
- 事务的4个特性
- 事务隔离级别
- 事务的实现
- 索引
- 索引的作用
- 索引操作
- 存储引擎
- 备份与恢复
- 视图
- 视图是什么
- 视图的作用
- 创建视图
- 查看视图
- 更改视图
- DML操作视图
- 删除视图
- 存储过程与函数
- 过程与函数是什么
- 存储过程操作
- 定义存储过程
- 调用存储过程
- 查看存储过程
- 删除存储过程
- 修改存储过程
- 函数操作
- 过程与函数区别
- 流程控制
- if语句
- case语句
- while循环语句
- repeat循环语句
- loop循环语句
- 变量
- 处理程序
- 光标
- Redis
- 简介
- 下载与安装
- 命令操作redis数据库
- 通用命令
- 数据操作
- 持久化
- Windows上的持久化操作
- 数据库设计
- 数据库设计过程
- ER模型图
- MongoDB
- MongoDB是什么?
- MongoDB特性
- MongoDB 数据模型
- 安装MongoDB
- MongoDB认证
- Database操作
- Collection操作
- Document操作
- 插入
- 查询
- 更新
- 删除
- buckWrite
- MongoDB索引
- 副本集
- 聚焦分析
- 事务管理
- 写关注
- 读关注