标签:
1.left join 从字面上来看,即为左交,是以左表为基准的,右表通过相应字段的连接来联合的。
A表
id name
1 张三
2 李四
3 王五
4 小陈
B表
id job
1 厨师
2 教师
3 工人
5 工程师
select * from a left join b on a.id=b.id
结果是这样的:
id name id job
1 张三 1 厨师
2 李四 2 教师
3 王五 3 工人
4 小陈 null null
left join 是左表全部显示,右表显示匹配到的字段和值,匹配不到的用NULL显示。
---------------------------------------------------------------------------------------------------------------
2.right join
right join 从字面上来看,即为右交,是以右表为基准的,左表通过相应字段的连接来联合的。
还以上面例子为例:
select * from a left join b on a.id=b.id
显示的结果可想而知:
id name id job
1 张三 1 厨师
2 李四 2 教师
3 王五 3 工人
null null 5 工程师
right join 是右表全部显示,左表显示匹配到的字段和值,匹配不到的用NULL显示。
-------------------------------------------------------------------------------------------------------------
3.inner join 从字面上来看,即为内交,内链接。内交是通过连接相等字段来执行的。
仍以上面例子为例:
select * from a Inner join b on a.id=b.id
结果是这样的:
id name id job
1 张三 1 厨师
2 李四 2 教师
3 王五 3 工人
inner join 是不以左右表为基准来匹配的,而是通过相等字段来链接值形成表的.
-----------------------------------------------------------------------------
在现实应用中,inner join 的速度是远远高于left join 和 right join的,但是具体的使用情况还得看数据的需求。
left join ,right join ,inner join 都是怎么交的?
标签:
原文地址:http://www.cnblogs.com/xuezi/p/4629473.html