union join
时间: 2025-01-08 20:29:04 浏览: 4
### 数据库操作中的Union与Join
#### Union 的工作原理
`UNION` 是用于组合两个或多个 `SELECT` 语句的结果集的操作符。所有被联合的选择列表达式的数量及其顺序必须相同,而且对应列的数据类型也应兼容[^1]。
```sql
SELECT column_name(s) FROM table1
UNION
SELECT column_name(s) FROM table2;
```
此命令会自动去除重复项;如果希望保留所有的记录,则可以使用 `UNION ALL` 关键字来代替普通的 `UNION`。
#### Join 的工作机制
相比之下,`JOIN` 则是用来基于某些条件从两个表或多张表中检索数据行的方法之一。常见的连接方式有内联接 (`INNER JOIN`)、左外联接 (`LEFT OUTER JOIN`) 右外联接(`RIGHT OUTER JOIN`) 和全外联接 (`FULL OUTER JOIN`)。
- **内联接**:返回两张表格中共有的匹配部分;
```sql
SELECT * FROM A INNER JOIN B ON A.key = B.key;
```
- **左外联接**:即使右侧表不存在对应的值也会显示左侧表的所有记录;
```sql
SELECT * FROM A LEFT OUTER JOIN B ON A.key = B.key;
```
- **右外联接**:即使左侧表不存在对应的值也会显示右侧表的所有记录;
```sql
SELECT * FROM A RIGHT OUTER JOIN B ON A.key = B.key;
```
- **全外联接**:无论哪边是否有不匹配的情况都会显示出两方全部的信息。
```sql
SELECT * FROM A FULL OUTER JOIN B ON A.key = B.key;
```
#### 使用场景对比
当需要获取来自不同查询结果集合并置后的唯一条目时可以选择 `UNION` 或者 `UNION ALL`; 而当你想要探索多份资料间的关系,并依据特定字段建立关联映射关系的时候则更适合采用各种类型的 `JOIN`.
阅读全文