sql 中leftleft outer join 用法的用法

> Sql之leftjoin、rightjoin、innerjoin的区别一、联接查询leftjoin
Sql之leftjoin、rightjoin、innerjoin的区别一、联接查询leftjoin
haotiandiy & &
发布时间: & &
浏览:63 & &
回复:0 & &
悬赏:0.0希赛币
Sql之left join、right join、inner join的区别
  一、联接查询
  left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录
  right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录
  inner join(等值连接) 只返回两个表中联结字段相等的行
  举例如下:
  --------------------------------------------
  表A记录如下:
  aID     aNum
  1     a
  2     a
  3     a
  4     a
  5     a
  表B记录如下:
  bID     bName
  1     
  2     
  3     
  4     
  8     
  --------------------------------------------
  1.left join
  sql语句如下:
  select * from A
  left join B
  on A.aID = B.bID
  结果如下:
  aID     aNum     bID     bName
  1     a    1     
  2     a    2     
  3     a    3     
  4     a    4     
  5     a    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     a    1     
  2     a    2     
  3     a    3     
  4     a    4     
  NULL     NULL     8     
  (所影响的行数为 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     a    1     
  2     a    2     
  3     a    3     
  4     a    4     
  结果说明:
  很明显,这里只显示出了 A.aID = B.bID的记录.这说明inner join并不以谁为基础,它只显示符合条件的记录.
  --------------------------------------------
  LEFT JOIN操作用于在任何的 FROM 子句中,组合来源表的记录。使用 LEFT JOIN 运算来创建一个左边外部联接。左边外部联接将包含了从第一个(左边)开始的两个表中的全部记录,即使在第二个(右边)表中并没有相符值的记录。
  语法:FROM table1 LEFT JOIN table2 ON table1.field1 compopr table2.field2
  说明:table1, table2参数用于指定要将记录组合的表的名称。
  field1, field2参数指定被联接的字段的名称。且这些字段必须有相同的数据类型及包含相同类型的数据,但它们不需要有相同的名称。
  compopr参数指定关系比较运算符:"=", "$$, "&=", "&=" 或 "$$。
  如果在INNER JOIN操作中要联接包含Memo 数据类型或 OLE Object 数据类型数据的字段,将会发生错误.
  @时间漩涡 用上面提到的A、B表为例: select * from A left join ( select bID,bName from B where bID &= 3 )T on T.bID = A.aID
  二、 联合查询
  UNION运算符可以将两个或两个以上上SELECT语句的查询结果集合合并成一个结果集合显示,即执行联合查询。UNION的语法格式为:
  select_statement   UNION [ALL] selectstatement   [UNION [ALL] selectstatement][…n]   其中selectstatement为待联合的SELECT查询语句。
  ALL选项表示将所有行合并到结果集合中。不指定该项时,被联合查询结果集合中的重复行将只保留一行。
  联合查询时,查询结果的列标题为第一个查询语句的列标题。因此,要定义列标题必须在第一个查询语句中定义。要对联合查询结果排序时,也必须使用第一查询语句中的列名、列标题或者列序号。
  在使用UNION 运算符时,应保证每个联合查询语句的选择列表中有相同数量的表达式,并且每个查询选择表达式应具有相同的数据类型,或是可以自动将它们转换为相同的数据类型。在自动转换时,对于数值类型,系统将低精度的数据类型转换为高精度的数据类型。
  在包括多个查询的UNION语句中,其执行顺序是自左至右,使用括号可以改变这一执行顺序。例如:
  查询1 UNION (查询2 UNION 查询3)
  FROM:;isFromSearchEngine=yes
本问题标题:
本问题地址:
温馨提示:本问题已经关闭,不能解答。
暂无合适的专家
&&&&&&&&&&&&&&&
希赛网 版权所有 & &&SQL 中 left join具体的用法,最好能举出例子.如果我能理解了,我再送50分!!谢谢!!!
小夏wan552
给个通俗的解释吧. 例表a aid adate 1 a1 2 a2 3 a3 表b bid bdate 1 b1 2 b2 4 b4 两个表a,b相连接,要取出id相同的字段 select * from a inner join b on a.aid = b.bid这是仅取出匹配...
连接查询 通过连接运算符可以实现多个表查询。连接是关系数据库模型的主要特点,也是它区别于其它类型数据库管理系统的一个标志。 在关系数据库管理系统中,表建立时各数据之间的关系不必确定,常把一个实体的所有信息存放在一个表中。当检索数据时,通过连接操作查询出存放在多个表中的不同实体的信息。连接操作给用户带来很大的灵活性,他们可以在任何时候增加新的数据类型。为不同实体创建新的表,尔后通...
为您推荐:
扫描下载二维码left join on 是左外联接,数据以左边的表为基准,右边的表数据哪怕为null也会查询出来,而inner join on则是左右两边的表的数据必须相互对应,如果有null则会去掉该条数据,如果右边或者左边表的数据都为null,则查询出来是没有结果集的。两个联接配合起来使用效果极好。因为有些需求需要我们配合这两个联接查询。
更多信息请查看
更多信息请查看
易贤网手机网站地址:
【】&&&&&【点此处查询各地各类考试咨询QQ号码及交流群】
由于各方面情况的不断调整与变化,易贤网所提供的所有考试信息和咨询回复仅供参考,敬请考生以权威部门公布的正式信息和咨询为准!
云南各地招聘
&nbsp&nbsp&nbsp &nbsp&nbsp&nbsp会员注册
本站不参与评论,(&&点此深度交流 )
自觉遵守:爱国、守法、自律、真实、文明的原则
尊重网上道德,遵守中华人民共和国各项有关法律法规
严禁发表危害国家安全,破坏民族团结、国家宗教政策和社会稳定,含侮辱、诽谤、教唆、淫秽等内容的评论
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
您在本站发表的评论,本站有权保留、转载、引用或者删除
参与本评论即表明您已经阅读并接受上述条款}

我要回帖

更多关于 left join on用法 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信