SQL中各种join以及它们的区别
2023-11-07 本文已影响0人
coder_girl
join的类型
1.inner join 内连接(可直接用join)
查询的结果是左表和右表关联字段相同的交集。即查询结果为下图重合部分的数据。
内连接
2.left join 左连接
使用left join查询的结果就是以左表为准,左表的数据全部查询,而右表的数据则只显示匹配的数据,不匹配的数据为null。
左连接
3.right join 右连接
查询结果是以右表的数据为准,右表的数据全部显示,左表则显示和右表交集部分的数据。可以用下图表示,查询的结果右表的所有值,左表中有匹配的则有值,不匹配的则null表示,和left join 相反!
右连接
4.union
UNION 操作符用于合并两个或多个 SELECT 语句的结果集。但是,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。UNION 只选取记录,而UNION ALL会列出所有记录。【即:union 相同的记录会合并成一条记录,union all 会显示全部不合并】
union
5.union all
union all
6.FULL OUTER JOIN 全外连接【注意!!!mysql 不支持】
全外连接,FULL OUTER JOIN,告诉DBMS生成的结果表中,除了包括匹配行外,还包括JOIN关键字(FROM子句中)左边表和右边表的不匹配行。全外连接实际上可以表示为:
全外连接 = 内连接 + 左边表中失配的元组 + 右边表中失配的元组。