left join 与 right join 的区别
left join 与 right join 的区别
一、建表 (SQL Server)
创建 j1 表
1
2
3
4
5
6
7
8
9use db1
go
create table dbo.j1
(
id int not null,
name varchar
)
go
表中数据:
id | name |
---|---|
1 | a |
2 | b |
3 | c |
- 创建 j2 表
1 |
|
表中数据:
id | name |
---|---|
2 | q |
3 | w |
2 | e |
二、区别
- j1 left join j2
1 |
|
left join 结果:
j1id | j1name | j2id | j2name |
---|---|---|---|
1 | a | null | null |
2 | b | 2 | q |
2 | b | 2 | e |
3 | c | 3 | w |
- j1 right join j2
1 |
|
right join 结果:
j1id | j1name | j2id | j2name |
---|---|---|---|
2 | b | 2 | q |
3 | c | 3 | w |
2 | b | 2 | e |
可以看出区别在于 id为1的记录。
- j1 left join j2 时, 以 j1 为主表, id为1的记录会显示在 join 结果中
- j1 right join j2 时,以 j2 为主表, j2中不包含 id为1的记录, 因此id为1的记录不会显示在 join 结果中。
总结: left join 的结果 跟 right join 的结果,其记录数量是不相同的。 具体结果需要具体分析。
left join 与 right join 的区别
https://pygyme.com/关系数据库/left-join-与-right-join-的区别/