一家反欺诈公司的面试经历——2.sql语句的左外连接,右外连接,内连接和全连接

来源:互联网 发布:有限元热分析软件 编辑:程序博客网 时间:2024/05/20 18:18
例子:   

-------------------------------------------------
  a表     id   name              b表     id   job   parent_id   
              1   张3                              1     23     1   
              2   李四                             2     34     2   
              3   王武                             3     34     4       
  a.id同parent_id   存在关系   

--------------------------------------------------    
 1) 内连接   
  select   a.*,b.*   from   a   inner   join   b     on   a.id=b.parent_id       
  结果是     
  1   张3                   1     23     1   
  2   李四                  2     34     2   
    
  2)左连接   
  select   a.*,b.*   from   a   left   join   b     on   a.id=b.parent_id       
  结果是     
  1   张3                   1     23     1   
  2   李四                  2     34     2   
  3   王武                  null   

 

 3) 右连接   
  select   a.*,b.*   from   a   right   join   b     on   a.id=b.parent_id       
  结果是     
  1   张3                   1     23     1   
  2   李四                  2     34     2   
  null                       3     34     4   
    
 4) 完全连接   
  select   a.*,b.*   from   a   full   join   b     on   a.id=b.parent_id   

  结果是     
  1   张3                  1     23     1   
  2   李四                 2     34     2   
  null                   3     34     4   
  3   王武                 null


注意:

1.如果要将null值改为默认值,就用isnull(score,0)表示,这样就可以将null值转化为0,如果不是null,则不改变。

2.如果我需要将左外的结果和右外的结果同时查询出来,就可以用union将两个结果集合并起来,这是一个比较蠢的方法,还可以用一条语句来表示。

0 0