源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

oracle中left join和right join的区别浅谈

  • 时间:2021-04-24 23:49 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:oracle中left join和right join的区别浅谈
通俗的讲:     A   left   join    B    的连接的记录数与A表的记录数同     A   right   join    B    的连接的记录数与B表的记录数同       A   left   join    B    等价B   right   join    A   table    A:     Field_K,    Field_A    1                        a    3                        b    4                        c       table    B:     Field_K,    Field_B    1                        x    2                        y    4                        z       select    a.Field_K,    a.Field_A,    b.Field_K,    b.Field_B    from    a   left   join    b   on    a.Field_K=b.Field_K        Field_K          Field_A          Field_K          Field_B            ----------    ----------    ----------    ----------      1                      a                     1                      x                      3                      b                     NULL               NULL    4                      c                     4                      z                         select    a.Field_K,    a.Field_A,    b.Field_K,    b.Field_B    from    a   right   join    b   on    a.Field_K=b.Field_K        Field_K          Field_A          Field_K          Field_B            ----------    ----------    ----------    ----------      1                      a                     1                      x                      NULL               NULL               2                      y                      4                      c                     4                      z      -- 举个例子:     假设a表和b表的数据是这样的。     a                          b       id      name  id      stock     1  a             1         15    2          b             2         50    3          c                        select   *   from    a   inner   join    b   on    a.id=b.id     这个语法是连接查询中的内连接,它产生的结果是     两个表相匹配的记录出现在结果列表中。     根据上面的表,出现的结果是这样的     a.id      name      b.id      stock    1        a             1         15    2              b             2         50    ----------------------------    select   *   from    a,b   where    a.id=b.id     这个语法是内连接的另外一种写法,其执行结果与inner   join    一样       --------------------------------         select   *   from    a   left/right   join    b   on    a.id=b.id     这个是外连接语法中的左外连接或右外连接     如果是左外连接的话,它将显示a表的所有记录,    select    a.*,b.*   from    a   left   join    b   on    a.id=b.id     查询的结果是这样的:     a.id      name      b.id      stock    1          a         1             15    2                b         2             50    3                c       null         null     --------------------------------------------     如果是右外连接的话,它将显示b表的所有记录,    select    a.*,b.*   from    a   right   join    b   on    a.id=b.id     查询的结果是这样的:     a.id      name      b.id      stock    1          a         1             15    2                b         2             50   -- select    a.*,b.*   from    a   left   join    b   on    a.k   =    b.k      select    a.*,b.*   from    a   left   outer   join    b   on    a.k   =b.k    ----------上面两种一样left    join是left    outer    join的简写    select    a.*,b.*   from    a   left   inner   join    b   on    a.k   =    b.k       没有这种写法,错误的语句.
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部