left join,inner join, join的用法区别
时间: 2024-08-13 21:02:49 浏览: 44
inner join 内联与left join 左联的实例代码
5星 · 资源好评率100%
left join、inner join 和普通的 join 都是在 SQL 中用于合并两个或更多表数据的关键字。它们的主要区别在于返回结果的不同:
1. **INNER JOIN** (内连接):
- 当两个表中的记录存在匹配的键值时,INNER JOIN 只返回那些在两个表中都有匹配项的行。
- 结果集只包含左表和右表交集的数据。
- 示例查询:`SELECT * FROM table1 INNER JOIN table2 ON table1.key = table2.key;`
2. **LEFT JOIN** 或 **LEFT OUTER JOIN**:
- 左连接保留了左表的所有记录,即使右表中没有匹配项。
- 如果没有找到匹配,右列将显示 NULL 值。
- 示例查询:`SELECT * FROM table1 LEFT JOIN table2 ON table1.key = table2.key;`
3. **RIGHT JOIN** 或 **RIGHT OUTER JOIN**:
- 类似于 LEFT JOIN,但是方向相反,保留的是右表的所有记录。
- 如果左表中没有匹配,左列将显示 NULL 值。
4. **FULL JOIN** 或 **FULL OUTER JOIN**:
- 同时包括左表和右表的所有记录,无论是否能找到匹配。
- 对于找不到匹配的记录,相应列将显示 NULL。
- SQL标准支持有限,部分数据库系统有变体如 `UNION ALL` 实现。
- 示例查询:`(SELECT * FROM table1 FULL JOIN table2 ...)` (取决于数据库的变体)
每个连接操作都会基于指定的关联条件来确定哪些行组合在一起。
阅读全文