sql join详解.md

sql的几种常见join详解

测试表

test1:                          test2:
-----------------               ----------------- 
|   id  |  name |               |   id  |  age  |
-----------------               -----------------
|   1   |  sxc  |               |   1   |  18   |
-----------------                -----------------
|   3   |  sb   |               |   2   |  12   |
-----------------               -----------------
|   4   |  dsb  |               |   3   |  10   |    
-----------------               -----------------   

INNER JOIN(内连接)

内连接返回的是两张表的交集部分,返回的是匹配上的行。 示例:

select * from test1 t1 
inner join  test2 t2
on t1.id = t2.id 

返回结果:

--------------------------             
|   id  |  name |  age  |             
--------------------------               
|   1   |  sxc  |  18   |               
--------------------------             
|   3   |  sb   |  10   |                  
--------------------------   

LEFT JOIN (左连接)

左连接返回的是左表的全部行和右表满足ON条件的行,如果左表的行在右表中没有匹配,那么这一行右表中对应数据用NULL代替。示例:

select * from test1 t1 
left join test2 t2
on t1.id = t2.id

返回结果:

--------------------------             
|   id  |  name |  age  |             
--------------------------               
|   1   |  sxc  |  18   |               
--------------------------             
|   3   |  sb   |  10   |                  
--------------------------
|   4   |  dsb  |  null |                  
--------------------------   

RIGHT JOIN (右连接)

右连接返回的是右表的全部行和左表满足ON条件的行,如果右表的行在左表中没有匹配,那么这一行左表中对应数据用NULL代替。示例:

select * from test1 t1 
rigth join test2 t2
on t1.id = t2.id

返回结果:

--------------------------             
|   id  |  name |  age  |             
--------------------------               
|   1   |  sxc  |  18   |               
--------------------------             
|   2   |  null |  12   |                  
--------------------------
|   3   |  sb   |  10   |                  
--------------------------   

FULL OUTER JOIN

FULL JOIN 会从左表 和右表 那里返回所有的行。如果其中一个表的数据行在另一个表中没有匹配的行,那么对面的数据用NULL代替

select * from test1 t1 
rigth join test2 t2
on t1.id = t2.id

返回结果:

总结

so easy!!!

Life is more than the present.