mysql中,left join 和 right join有什么区别
时间: 2025-01-12 19:48:11 浏览: 57
### MySQL LEFT JOIN 和 RIGHT JOIN 的区别
#### 左连接(LEFT JOIN)
左连接返回左表中的所有记录,即使右表中没有匹配。如果右表中没有找到匹配项,则结果集中来自右表的列将包含 NULL 值。
```sql
SELECT column_list
FROM table_name1
LEFT OUTER JOIN table_name2
ON table_name1.column_name = table_name2.column_name;
```
此语句会获取 `table_name1` 所有行,并尝试与 `table_name2` 进行关联;当找不到对应关系时,在最终的结果集中,来自于 `table_name2` 那部分数据会被填充成 NULL[^1]。
#### 右连接(RIGHT JOIN)
相比之下,右连接则确保右侧表格内的全部条目都会被展示出来。这意味着即便左侧不存在相配对的信息,右边的数据依旧会出现于输出之中,而左边对应的字段为空值(NULL)表示无关联情况存在。
```sql
SELECT column_list
FROM table_name1
RIGHT OUTER JOIN table_name2
ON table_name1.column_name = table_name2.column_name;
```
上述命令使得 `table_name2` 中所有的记录都出现在查询结果里,对于未能成功链接到 `table_name1` 的情形下,相应位置上会置入 NULL 来代替缺失的部分[^5]。
为了更直观理解两者差异,可以考虑如下场景:
假设有一个员工信息表 (`employees`) 和一个部门详情表(`departments`) ,其中每位雇员属于某个特定分组即部门编号相同。通过执行不同类型的联接操作来观察所得的不同之处。
- 使用 **LEFT JOIN** 将保留所有员工记录,即使某些人不属于任何已知部门;
- 而采用 **RIGHT JOIN**, 则会使每一个部门至少有一行代表,哪怕该单位暂时没有任何成员加入。
阅读全文
相关推荐

















