码迷,mamicode.com
首页 > 数据库 > 详细

SQL on and 和 on where 的区别

时间:2019-07-30 10:59:17      阅读:295      评论:0      收藏:0      [点我收藏+]

标签:str   ted   临时   code   col   sele   记录   select   har   

 on and 和 on where 的 区别

在使用 left join 时, on and 和 on where 会有区别;
1. on的条件是在连接生成临时表时使用的条件,以左表为基准 ,不管on中的条件真否,都会返回左表中的记录
  on 后面 and 都是对右表进行筛选

2.where是全部连接完后,对临时表进行筛选,筛选对左表和右表都有效

在使用inner join时,on   and与on  where条件的区别:不管是对左表还是右表进行筛选,on  and和on  where都会对生成的临时表进行过滤。

1. 新建表 t1

技术图片

2. 新建表 t2

技术图片

3. 关联查询:

select * from t1 left join t2 on t1.user_id = t2.user_id

技术图片

on and 

a.) 对左表加and 条件

select * from t1 left join t2 on t1.user_id = t2.user_id and t1.deleted = 0

技术图片

 

b.) 对右表加and 条件

select * from t1 left join t2 on t1.user_id = t2.user_id and t2.deleted = 0

技术图片

 

 on where

select * from t1 left join t2 on t1.user_id = t2.user_id where t1.deleted = 0

技术图片

select * from t1 left join t2 on t1.user_id = t2.user_id where t2.deleted = 0

技术图片

 

SQL on and 和 on where 的区别

标签:str   ted   临时   code   col   sele   记录   select   har   

原文地址:https://www.cnblogs.com/Uzai/p/11260361.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!