当我们需要将多个表格(或者视图)中的数据合并成一张表格时,就需要用到 join 操作。常见的 join 包括 inner join、left join、right join、full outer join 等。
Inner join:内连接,也称交集连接,只返回两个表格中共有的数据行。使用 inner join 操作符连接两个表格的某一列时,只有当这一列的数据在两个表格中都出现时,才会在结果集中出现。
A inner join B:AB的交集
Left join:左连接,返回左表格中所有的数据行,以及右表格中与左表格中对应的数据行。如果右表格中的数据不与左表格中的数据对应,则结果集中将显示 NULL 值。左连接的操作符为 left join。
A left join B:A 的全集,可以匹配上 B 的则有值,无法匹配的为 NULL
Right join:右连接,与左连接相反,返回右表格中所有的数据行,以及左表格中与右表格中对应的数据行。如果左表格中的数据不与右表格中的数据对应,则结果集中将显示 NULL 值。右连接的操作符为 right join。
A right join B:B 的全集,可以匹配上 A 的则有值,无法匹配的为 NULL
Full outer join:全外连接,返回两个表格中所有的数据行,如果两个表格中的数据不匹配,则使用 NULL 值填充。全外连接的操作符为 full outer join。
A full outer join B:AB 并集
需要注意的是,不同数据库系统中 join 操作的语法可能略有不同,但基本原理是一样的。
当我们有两个表格 A 和 B,它们分别包含如下数据:
A 表格: