有如下两张表A和B,分别有c列和d列:

一、上下拼接:union 和 union all
SQL中,union 和 union all 操作符用于合并两个或多个 select 语句的结果集。
注意:union 或 union all 内部的 select 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 select 语句中的列的顺序必须相同。
另外,union 结果集中的列名总是等于 union 中第一个 SELECT 语句中的列名。
区别:使用 union 上下拼接时,所有的列如有重复数据会进行去重;而 union all 不会进行去重,会列出所有的值。
1、select A.c as e from A union select B.d as e from B

2、select A.c as e from A union all select B.d as e from B

二、左右连接:inner join、left join、right join、outer join

SQL中,joinl 操作符用于左右连接两个或多个 select 语句的结果集。
left join:以左表为主表,右表中可以匹配则返回对应数据,无法匹配则为空,返回左表所有的行
right join:以右表为主表,左表中可以匹配则返回对应数据,无法匹配则为空,返回右表所有的行
inner join:两表取交集,只要两表中有至少一个匹配即可,最终返回两表共有的行
outer join:两表取并集,只要其中一个表中存在匹配即可,最终返回两表所有的行
1、select A.c,B.d from A inner join B on A.c=B.d

2、select A.c,B.d from A left join B on A.c=B.d

3、select A.c,B.d from A right join B on A.c=B.d

4、select A.c,B.d from A outer join B on A.c=B.d

好了,今天的分享就到这里,喜欢的话点个赞吧~




