select b.town_id ,a.school_name from school a left join town b on (a.town_id = b.town_id); --416
select b.town_id ,a.school_name from school a left join town b on (a.town_id = 110108 and a.town_id = b.town_id); --416
select b.town_id ,a.school_name from school a left join town b on (b.town_id = 110108 and a.town_id = b.town_id); --416
select b.town_id ,a.school_name from school a right join town b on (a.town_id = b.town_id); --416
select b.town_id ,a.school_name from school a right join town b on (a.town_id = 110108 and a.town_id = b.town_id); --91
select b.town_id ,a.school_name from school a right join town b on (b.town_id = 110108 and a.town_id = b.town_id); --91
1、join中on与where
join取得是内连接条件写在on和where后边的结果是一样的。写在on后边是在进行表关联之前过滤数据然后进行关联生成临时表,这样关联的数据量可能少一些,可能会快一些,尤其是表的数据量比较大的时候会明显一些;写在where后边是两张表先进行关联在生成临时表在临时表的基础上进行where条件过滤筛选。
2、left、right中on与where
left、right就是进行左或右连接,无论on后边的条件是否为真都会返回left或right表中的全部数据。
on负责两张表关联时进行数据过滤,但是会返回left或right表中的全部记录(无论是否匹配上)
where负责对生成的临时表进行过滤
以上就是对left、right、join后on与where的理解。水平有限,如果理解的不对望指导。
分享到:
相关推荐
left_join_on_and与left_join_on_where的区别
SQL中on条件与where条件的区别基础知识
本文简单描述了sql语句join中on和where的区别以及其原理
sql查询左连接on与where的区别(2).pdf
on,where,group by用法心得
本篇文章是对Oracle的left join中on和where的区别进行了详细的分析介绍,需要的朋友参考下
主要给大家介绍了关于MySQL查询条件中放置on和where的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
主要给大家介绍了关于SQL中过滤条件放on和where中的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起看看吧
1、 on条件是在成临时表时使的条件,它不管on中的条件是否为真,都 2、where条件是在临时表成好后,再对临时表进过滤的条件 1、中间表 2、再对中间表过滤
LEFT JOIN 关键字从左表(table1)返回所有的行,即使右表(table2)中没有匹配。如果右表中没有匹配,则结果为 NULL。这篇文章主要介绍了sql中的left join以及on、where关键字的区别,需要的朋友可以参考下
left join 过滤条件写在on后面和写在where 后面的区别
Join on/inner join on/full join on/full outer join on/left join on/right join on/cross join on; 在使用jion时,on和where条件的区别;
有这样的一个问题mysql查询使用mysql中left(right)join筛选条件在on与where查询出的数据是否有差异。可能只看着两个关键字看不出任何的问题。那我们使用实际的例子来说到底有没有差异。例如存在两张表结构表结构1...
主要介绍了mysql中left join设置条件在on与where时的用法区别,结合实例形式分析了mysql中left join设置条件在on与where时的相关用法区别与操作注意事项,需要的朋友可以参考下
on的优先级是高于where的。 首先明确两个概念: LEFT JOIN 关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行。 数据库在通过连接两张或多张表来返回记录时,都会生成...
以下是对在sql语句中left_join、inner_join中的on与where的区别进行了详细的分析介绍,需要的朋友可以参考下
NULL 博文链接:https://pmandy-163-com.iteye.com/blog/701707