JOIN关键字
1 | SELECT column |
- join_table指参与连接操作的表名
- column指查询的列
- JOIN_TYPE 指连接类型
INNER JOIN,内连接(等同连接)
返回结果集只返回满足ON字句中的搜索条件的数据,不满足则不显示。默认情况下,DBMS会将JOIN也认定为INNER JOIN
表R
| A | B | C |
|---|---|---|
| a1 | b1 | c1 |
| a2 | b2 | c2 |
| a3 | b3 | c3 |
表S
| C | D |
|---|---|
| c1 | d1 |
| c2 | d2 |
| c4 | d3 |
执行R INNER JOIN S ON R.C = S.C
| A | B | C | C | D |
|---|---|---|---|---|
| a1 | b1 | c1 | c1 | d1 |
| a2 | b2 | c2 | c2 | d2 |

OUTER JOIN,外连接
LEFT OUTER JOIN(LEFT JOIN),左外连接
结果集返回匹配行加上左表的不匹配行
表R
| A | B | C |
|---|---|---|
| a1 | b1 | c1 |
| a2 | b2 | c2 |
| a3 | b3 | c3 |
表S
| C | D |
|---|---|
| c1 | d1 |
| c2 | d2 |
| c4 | d3 |
执行R LEFT JOIN S ON R.C = S.C
| A | B | C | C | D |
|---|---|---|---|---|
| a1 | b1 | c1 | c1 | d1 |
| a2 | b2 | c2 | c2 | d2 |
| a3 | b3 | c3 | null | null |

RIGHT OUTER JOIN(RIGHT JOIN),右外连接
结果集返回匹配行加上右表的不匹配行
表R
| A | B | C |
|---|---|---|
| a1 | b1 | c1 |
| a2 | b2 | c2 |
| a3 | b3 | c3 |
表S
| C | D |
|---|---|
| c1 | d1 |
| c2 | d2 |
| c4 | d3 |
执行R RIGHT JOIN S ON R.C = S.C
| A | B | C | C | D |
|---|---|---|---|---|
| a1 | b1 | c1 | c1 | d1 |
| a2 | b2 | c2 | c2 | d2 |
| null | null | null | c4 | d3 |

FULL OUTER JOIN,全外连接
结果集返回匹配行和左右表的不匹配行
表R
| A | B | C |
|---|---|---|
| a1 | b1 | c1 |
| a2 | b2 | c2 |
| a3 | b3 | c3 |
表S
| C | D |
|---|---|
| c1 | d1 |
| c2 | d2 |
| c4 | d3 |
执行R FULL JOIN S ON R.C = S.C
| A | B | C | C | D |
|---|---|---|---|---|
| a1 | b1 | c1 | c1 | d1 |
| a2 | b2 | c2 | c2 | d2 |
| a3 | b3 | c3 | null | null |
| null | null | null | c4 | d3 |
