关闭

left join,right join,inner join

标签: joinnullsql
2563人阅读 评论(1) 收藏 举报
分类:
 

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并不以谁为基础,它只显示符合条件的记录
0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

左连接(left jion)、右连接(right jion)、内连接(inner join)性能比较

前提:数据库中一共有三个表:class,book,phone,而且每个数据库表中都有10万条数据,三个表一共有30万条数据,从大数据量的角度来检测你写的sql语句性能是如何的. 一.左连接 用sq...
  • tomorrow_C
  • tomorrow_C
  • 2017-03-23 10:58
  • 1514

SQL中INNER、LEFT、RIGHT JOIN的区别和用法详解

相信很多人在刚开始使用数据库的INNER JOIN、LEFT JOIN和RIGHT JOIN时,都不太能明确区分和正确使用这三种JOIN操作,本文通过一个简单的例子通俗易懂的讲解这三者的区别,希望对大...
  • wangyuchun_799
  • wangyuchun_799
  • 2015-10-13 14:12
  • 8611

SQLite3中的三种Join方式

前一阵子设计数据库结构,有个设计是要保存所有的音、视频和图片信息的metadata到表中,并要求可以不分类型的一次全部检索出来。原来有个设计是设计一张大表,把所有的字段不分类型全都添进去,通过类型字段...
  • coroutines
  • coroutines
  • 2014-09-18 11:44
  • 14121

对于 join, 如果不写 left ,inner ,right ,默认是什么联接呢?

默认是 inner join   #1. select * from a join b on a.id = b.id #2. select * from a inner j...
  • tianlianchao1982
  • tianlianchao1982
  • 2012-03-13 10:01
  • 1468

SQL中INNER、LEFT、RIGHT JOIN的区别和用法详解

相信很多人在刚开始使用数据库的INNER JOIN、LEFT JOIN和RIGHT JOIN时,都不太能明确区分和正确使用这三种JOIN操作,本文通过一个简单的例子通俗易懂的讲解这三者的区别,希望对大...
  • jx347638458
  • jx347638458
  • 2017-07-25 15:32
  • 375

解析oracle中left right inner join

表A记录如下: aID aNum 1   a11 2   a22 3   a33 4   a44 5   a55 表B记录如下: bID bName 1   b11 2 ...
  • feidegenggao1
  • feidegenggao1
  • 2011-04-19 10:07
  • 582

Sql语句之left/right join inner join

通俗的讲:   A left join B 的连接的记录数与A表的记录数同 A right join B 的连接的记录数与B表的记录数同 A ...
  • hailushijie
  • hailushijie
  • 2013-06-28 17:12
  • 1213

sql语句中left jion、 right jion、 inner join、 full join含义

先看一下left join  http://baike.baidu.com/view/4828677.htm?fr=aladdin 定义 编辑 left join:是SQL语言中的查询...
  • conganguo
  • conganguo
  • 2014-08-19 18:01
  • 529

SQL中left join、right in、inner join的区别

left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录  right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录 inner join(等值连接)...
  • qq_37067322
  • qq_37067322
  • 2017-08-09 18:11
  • 110

SQL中的left outer join,inner join,right outer join用法详解

  • 2014-12-17 08:15
  • 20KB
  • 下载
    个人资料
    • 访问:289743次
    • 积分:6400
    • 等级:
    • 排名:第4397名
    • 原创:313篇
    • 转载:30篇
    • 译文:0篇
    • 评论:30条
    最新评论
    asp中的我
    php世界