SQL语句inner join,left join ,right join连接的不同之处(转)
2011-03-01 13:57
666 查看
left join/left out join :左连接,返回左表中所有的记录以及右表中连接字段相等的记录。 right join/right out join:右连接,返回右表中所有的记录以及左表中连接字段相等的记录。 full join/full out join:外连接,返回两个表中的行:left join + right join inner join: 内连接,又叫等值连接,只返回两个表中连接字段相等的行。 cross join:结果是笛卡尔积,就是第一个表的行数乘以第二个表的行数。
表A记录如下:
aID aNum
1 a20050111
2 a20050112
3 a20050113
4 a20050114
5 a20050115
表B记录如下:
bID bName
1 2006032401
2 2006032402
3 2006032403
4 2006032404
8 2006032408
实验如下:
1.left join
sql语句如下:
select * from A
left join B
on A.aID = B.bID
结果如下:
aID aNum bID bName
1 a20050111 1 2006032401
2 a20050112 2 2006032402
3 a20050113 3 2006032403
4 a20050114 4 2006032404
5 a20050115 NULL NULL
(所影响的行数为 5 行)
结果说明:
left join是以A表的记录为基础的,A可以看成左表,B可以看成右表,left join是以左表为准的.
换句话说,左表(A)的记录将会全部表示出来,而右表(B)只会显示符合搜索条件的记录(例子中为: A.aID = B.bID).
B表记录不足的地方均为NULL.
2.right join
sql语句如下:
select * from A
right join B
on A.aID = B.bID
结果如下:
aID aNum bID bName
1 a20050111 1 2006032401
2 a20050112 2 2006032402
3 a20050113 3 2006032403
4 a20050114 4 2006032404
NULL NULL 8 2006032408
(所影响的行数为 5 行)
结果说明:
仔细观察一下,就会发现,和left join的结果刚好相反,这次是以右表(B)为基础的,A表不足的地方用NULL填充.
3.inner join
sql语句如下:
select * from A
innerjoin B
on A.aID = B.bID
结果如下:
aID aNum bID bName
1 a20050111 1 2006032401
2 a20050112 2 2006032402
3 a20050113 3 2006032403
4 a20050114 4 2006032404
结果说明:
很明显,这里只显示出了 A.aID = B.bID的记录.这说明inner join并不以谁为基础,它只显示符合条件的记录.
相关文章推荐
- SQL语句inner join,left join ,right join连接的不同之处
- SQL语句inner join,left join ,right join连接的不同之处
- 教你简单学会SQL语句inner join,left join ,right join连接
- SQL语句inner join、left join和right join的不同之处
- SQL语句中inner join、left join、right join、full join的区别
- sql语句中连接join ,left join ,right join的使用
- SQL优化--使用内连接(inner join)代替外连接(left join,right join) (转)
- SQL语句之left join、right join、inner join的区别
- sql连接left join、right join、inner join的使用
- Sql查询左连接(left join),右连接(right join),内连接(inner join)
- sql之left join、right join、inner join的区别,连接自己时的查询结果测试
- sql多表连接查询inner join, left join , right join ,full join ,cross join
- sql多表连接查询inner join, left join , right join ,full join ,cross join
- 关于sql语句的inner join,left join ,right join的区别
- SQL学习总结(1)----left join , right join , inner join,全连接,外链接 区别
- SQL表连接查询(inner join、full join、left join、right join)
- sql语句中的left join、right join、inner join的区别
- sql 多表连接查询inner join, left join , right join ,full join ,cross join
- sql多表连接查询inner join, left join , right join ,full join ,cross join
- 转载一篇介绍sql语句left join,right join,inner join的文章