通俗的讲
A left join B 的连接的记录数与A表的记录数同
A right join B 的连接的记录数与B表的记录数同
A left join B 等价B right join A
下面就举个例子吧~
假设a表和b表的数据是这样的。
a表
id | name |
---|---|
1 | a |
2 | b |
3 | c |
b表
id | stock |
---|---|
1 | 15 |
2 | 50 |
select * from a inner join b on a.id=b.id
这个语法是连接查询中的内连接,它产生的结果是
两个表相匹配的记录出现在结果列表中。
根据上面的表,出现的结果是这样的:
a.id | name | b.id | stock |
---|---|---|---|
1 | a | 1 | 15 |
2 | b | 2 | 50 |
select * from a,b where a.id=b.id
这个语法是内连接的另外一种写法,其执行结果与inner join 一样
select * from a left/right join b on a.id=b.id
这个是外连接语法中的左外连接或右外连接
如果是左外连接的话,它将显示a表的所有记录,
select a.,b. from a left join b on a.id=b.id
查询的结果是这样的:
a.id | name | b.id | stock |
---|---|---|---|
1 | a | 1 | 15 |
2 | b | 2 | 50 |
3 | c | null | null |
如果是右外连接的话,它将显示b表的所有记录,
select a.,b. from a right join b on a.id=b.id
查询的结果是这样的:
a.id | name | b.id | stock |
---|---|---|---|
1 | a | 1 | 15 |
2 | b | 2 | 50 |
.
作者:程序员那些破事儿
出处: https://blog.csdn.net/wjq6940
欢迎投稿分享个人工作,生活,项目经验。
号内有各类编程教学视频资源哦!