left join 和right join本质区别(图解)
更新:HHH   时间:2023-1-7


1, test1表

2,test2表

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

结果:

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

结果:

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

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

结果:

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

结果:

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

结果:

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

结果:

总结:

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

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

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

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

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













返回MySQL数据库教程...