mysql中left join .. and 与 where的区别

t1表:

t2表:

left join结果:
select t1. id ,t1. name ,t2. id ,t2. name from t1 left join t2 on t1. id =t2. id


使用and : (先筛选后进行连接操作) (这里先筛选出t1.id=3的记录之后与t1表进行连接, 左表记录还是存在)
select t1. id ,t1. name ,t2. id ,t2. name from t1 left join t2 on t1. id =t2. id and t1. id = 3 ;
结果:


使用where : (先进行左连接,之后进行筛选,所以只有一条记录)
select t1. id ,t1. name ,t2. id ,t2. name from t1 left join t2 on t1. id =t2. id where t1. id = 3 ;
结果:


PS: 如果是inner join,则and与where操作效果一样,都是where操作结果。

猜你喜欢

转载自blog.csdn.net/shan165310175/article/details/80228097