Inner Join 和 Outer Join 有什么区别?
时间: 2024-12-20 15:30:03 浏览: 9
Inner Join和Outer Join是SQL中用于合并两个或更多表格的数据的两种基本连接类型。
1. **Inner Join** (内连接):它只返回两个表中存在匹配条件的记录。换句话说,只有当源表A和目标表B在指定列上有匹配的值时,结果集中才会包含这两条记录。如果某条记录在其中一个表中找不到匹配,那么这条记录不会出现在结果集里。
示例:
```
SELECT * FROM tableA INNER JOIN tableB ON tableA.column = tableB.column;
```
2. **Outer Join** (外连接):
- **Left Outer Join** (左外连接):返回左表(tableA)的所有记录以及右表(tableB)匹配的记录。如果没有匹配,则右边的结果是NULL。
- **Right Outer Join** (右外连接):与左外连接类似,但返回的是右表的所有记录及左表匹配的记录。
- **Full Outer Join** (全外连接):返回两表的所有记录,对于没有匹配的记录,一端的值为NULL。
示例:
- Left Outer Join: `SELECT * FROM tableA LEFT OUTER JOIN tableB ON tableA.column = tableB.column;`
- Right Outer Join: `SELECT * FROM tableA RIGHT OUTER JOIN tableB ON tableA.column = tableB.column;`
- Full Outer Join: `SELECT * FROM tableA FULL OUTER JOIN tableB ON tableA.column = tableB.column;`
总之,Inner Join只返回有交集的数据,而Outer Join则包括那些没有交集的部分,并用NULL填充缺失的值。
阅读全文