SQL的四种连接-内连接、左连接、右连接、全连接

连接查询就是根据两个表或多个表的列之间的关系,从这些表中查询数据,实现多表查询数据。

举例来说明四种连接的查询方式和结果:

例子:   
-------------------------------------------------
  a表     id   name     b表        id   job   parent_id   
              1   张三                   1     23     1   
              2   李四                   2     34     2   
              3   王五                   3     34     4       
 其中: a.id=b.parent_id

--------------------------------------------------    

一、内连接(inner join):

查询语句的链接条件中使用像 =  或 <> 之类的比较运算符,根据每个表共有的列的值匹配两个表中的行。

  select  a.*,b.*   from a inner join b on  a.id=b.parent_id       
  结果是     
  1   张三                  1     23     1   

  2   李四                  2     34     2   

二、左连接(left join):

返回查询语句中左表的所有行,如果左表中行在右表中没有匹配行,则结果中右表中的行返回空值。

  select   a.*,b.*   from   a   left   join   b     on   a.id=b.parent_id       
  结果是     
  1   张三                   1     23     1   
  2   李四                  2     34     2   

  3   王五                  null   

总结:左连接显示左表全部行,和右表与左表相同行。

三、右连接(right join):

返回右表的所有行。如果右表的某行在左表中没有匹配行,则将为左表返回空值。

  select   a.*,b.*   from   a   right   join   b     on   a.id=b.parent_id       
  结果是     
  1   张三                   1     23     1   
  2   李四                   2     34     2   

  null                         3     34     4  

四、全连接(full join):

返回左表和右表中的所有行。当某行在另一表中没有匹配行,则另一表中的列返回空值

  select   a.*,b.*   from   a   full   join   b    on   a.id=b.parent_id   
  结果是     
  1   张三                  1     23     1   
  2   李四                 2     34     2   
  null                   3     34     4   
  3   王五                 null

猜你喜欢

转载自blog.csdn.net/showgea/article/details/80523844