Oracle 的各种连接

jopen 10年前

SQL UNION 操作符
UNION 操作符用于合并两个或多个 SELECT 语句的结果集。

请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。

SQL UNION 语法
SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2
注释:默认地,UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL。

SQL UNION ALL 语法
SELECT column_name(s) FROM table_name1
UNION ALL
SELECT column_name(s) FROM table_name2
另外,UNION 结果集中的列名总是等于 UNION 中第一个 SELECT 语句中的列名。

另一种连接:内连接和外连接

简单来讲,随便来个例子:
A表  B表
id name id name
1   a  1   b 
2   b  3   c
4   c  
内连接就是左表和右表相同的数据:
select * from A inner join B on A.id=B.id

id name id name
1   a   1   b

外连接分为:左外连接、右外连接、全外连接

左外连接就是以左表为准,去匹配右表,左表有多少条数据,结果就是多少条数据
select * from A left join B on A.id=B.id
id name id  name
1   a    1   b
2   b   null null
4   c   null null

右外连接就是与左外连接反之,以右表为准,去匹配左表,右表有多少条数据,结果就是多少条数据
select * from A right join B on A.id=B.id
id  name  id name
1    a     1   b
null null  3   c

全外连接数据条数不一定,相当与是左外连接 和右外连接 的综合
select * from A full join B on A.id=B.id
id  name   id   name
1    a     1     b
2    b     null null
null null   3    c
4    c     null null