1.表1
2.表2
第一条sql
select * from test_1 t1 left join test_2 t2 on (t1.name=t2.name and t2.name='name1');
查询结果
,这里sql中的t2.name换成t1.name效果是一样的
第二条sql
select * from test_1 t1 left join test_2 t2 on t1.name=t2.name where t1.name='name1';
两种查询方式 ,就是第一种先按照条件关联,也会将冗余的结果显示出来;第二种直接先关联,再在结果中筛选,直接显示要的结果。
之前没明白同事为什么选第一种,后来发现是业务需求。。。
后来同事说转换成right join,实验完发现,无论是left join还是right,on后面的筛选条件无论是什么,都是显示主表的所有数据。