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 |