表連接分為內連接、外連接、全連接。
>[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索引
- 副本集
- 聚焦分析
- 事務管理
- 寫關注
- 讀關注