黑马程序员技术交流社区
标题:
SQL表连接
[打印本页]
作者:
严鹏
时间:
2012-2-10 08:19
标题:
SQL表连接
哪位大侠能够用通俗一点的语言介绍一下SQL中Inner join、left join和right join之间的区别呀?
作者:
周平武
时间:
2012-2-10 08:57
举个例子你就能知道了!
A表(a1,b1,c1) B表(a2,b2)
a1 b1 c1 a2 b2
01 数学 95 01 张三
02 语文 90 02 李四
03 英语 80 04 王五
select A.*,B.* from A
inner join B on(A.a1=B.a2)
结果是:
a1 b1 c1 a2 b2
01 数学 95 01 张三
02 语文 90 02 李四
select A.*,B.* from A
left outer join B on(A.a1=B.a2)
结果是:
a1 b1 c1 a2 b2
01 数学 95 01 张三
02 语文 90 02 李四
03 英语 80 NULL NULL
select A.*,B.* from A
right outer join B on(A.a1=B.a2)
结果是:
a1 b1 c1 a2 b2
01 数学 95 01 张三
02 语文 90 02 李四
NULL NULL NULL 04 王五
作者:
黄晓波
时间:
2012-2-10 09:41
left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录
right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录
inner join(等值连接) 只返回两个表中联结字段相等的行
例如:
表A:
userID numberA
1 12
2 15
3 17
表B:
userID numberB
1 77
2 65
5 78
select *
from A left join B
where A.userId=B.userID
结果是:
userID numberA userID numberB
1 12 1 77
2 15 2 65
3 17 null null
select *
from A right join B
where A.userId=B.userID
结果是:
userID numberA userID numberB
1 12 1 77
2 15 2 65
null null 5 78
select *
from A inner join B
where A.userId=B.userID
结果是:
userID numberA userID numberB
1 12 1 77
2 15 2 65
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2