t1表的结构与数据如下:
![t1表](https://i-blog.csdnimg.cn/blog_migrate/0a01c6b92c395dd3d84ea36c46c662fd.jpeg)
t2 表的结构与数据如下:
![t2表](https://i-blog.csdnimg.cn/blog_migrate/1c737fbf5e46944ff69d89d56a246d03.jpeg)
inner join
select * from t1 inner join t2 on t1.id = t2.id;
![inner join](https://i-blog.csdnimg.cn/blog_migrate/2571d249710c728a213ca82657c4743f.jpeg)
inner join会把 公共部分的数据查询出来 :
![inner join查询结果](https://i-blog.csdnimg.cn/blog_migrate/27f25250c9a157482d2476aede9c1a02.jpeg)
left join
select * from t1 left join t2 on t1.id = t2.id;
![left join](https://i-blog.csdnimg.cn/blog_migrate/5ccc5d5ac4a1ec7ff827dd3687aacad6.jpeg)
left join查询出来的 结果和前表记录数一样多,后表如果没有对应记录,则列为空 :
![left join查询结果](https://i-blog.csdnimg.cn/blog_migrate/0b56d734b062d26892074dc3887c574c.jpeg)
right join
right join能转化为left join,例如:
select * from t1 right join t2 on t1.id = t2.id;
能转化为
select * from t2 left join t1 on t1.id = t2.id;
只是前表发生了变化而已。
大伙可结合自己的业务场景,选择正确的join。