left join 和right join本质区别(图解)

1, test1表

image.png

2,test2表

image.png

3,查询

1,left join (1表为条件)

SELECT t1.id id1, t1.id1 a1, t1.id2 b1, t2.id1 a2, t2.id2 b2, t2.id id2
FROM test1 t1 LEFT JOIN test2 t2 ON t1.id1 = t2.id2 WHERE t1.id1 = 2

结果:

image.png

2,left join (2表为条件)

SELECT t1.id id1, t1.id1 a1, t1.id2 b1, t2.id id2, t2.id1 a2, t2.id2 b2  
FROM test1 t1 LEFT JOIN test2 t2 ON t1.id1 = t2.id2 WHERE t2.id1 = 2

结果:

image.png

总结:不论是左边 的表还是右边的表都以显示左边的为主,左边的表可以重复

3,left join (左边存在右边不存在条件)

SELECT t1.id id1, t1.id1 a1, t1.id2 b1, t2.id id2, t2.id1 a2, t2.id2 b2  
FROM test1 t1 LEFT JOIN test2 t2 ON t1.id1 = t2.id2 WHERE t1.id1 = 6

结果:

image.png

3,left join (右边存在左边不存在条件)

SELECT t1.id id1, t1.id1 a1, t1.id2 b1, t2.id id2, t2.id1 a2, t2.id2 b2  
FROM test1 t1 LEFT JOIN test2 t2 ON t1.id1 = t2.id2 WHERE t2.id1 = 5

结果:

image.png

4,left join (查询所有的字段)

SELECT t1.id id1, t1.id1 a1, t1.id2 b1, t2.id id2, t2.id1 a2, t2.id2 b2  
FROM test1 t1 LEFT JOIN test2 t2 ON t1.id1 = t2.id2

结果:

image.png

5,right join (查询所有字段)

SELECT t1.id id1, t1.id1 a1, t1.id2 b1, t2.id id2, t2.id1 a2, t2.id2 b2  
FROM test1 t1 RIGHT JOIN test2 t2 ON t1.id1 = t2.id2

结果:

image.png

总结:

左连接和右连接正好相反,不介绍了

1,保证数据的完整,只要和左边的表条件对应,都会显示

2,和左边的表不对应,就不显示

3,左边存在显示左边的,右边不存在就不显示

[便于自己理解最好自己手动敲一遍,记忆是通过多个器官共鸣,记忆更加深厚]













猜你喜欢

转载自blog.51cto.com/14047445/2458670