SQL中on和where的区别前言,在工作写SQL使用中,在涉及到多个表的关联时,既可以通过on进行数据过滤,又可以使用where进行数据过滤,确实有点不太了解这两个关键字在left join后的区别,所以就去查了些资料,方便以后回顾。→省流:看结论拉到最后←数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临时表...
1、对于内连接(inner join),sql过滤条件放在where或者on后面没有区别 2、对于左右连接(left/right join),sql过滤条件放在where或者on后面有很大的区别。
1、 on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录。 2、where条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有left join的含义(必须返回左边表的记录)了,条件不为真的就全部过滤掉。 假设有两张表: 表1:tab2 id size 1 10 2 20 3 30 表2:tab2...
1、on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录。 2、where条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有left join的含义(必须返回左边表的记录)了,条件不为真的就全部过滤掉,on后的条件用来生成左右表关联的临时表,where后的条件对临时表中的记录进...
1、 on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录。2、where条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有left join的含义(必须返回左边表的记录)了,条件不为真的就全部过滤掉。
本质上的区别不是很清楚.实际应用中的,比较了解,on 条件是用于外键连接,where 条件是用于筛选纪录.on可适用于多条记录,asp批量处理时候常用.where必将常见于单条记录读取查询.而且on一般跟join连用的,where是条件语句,听说在有索引的情况下,join的效率会更快点,但具体没亲自测试过.where是SQL-89语法,用...
on where 是指这前后两个表的连接条件只有on后面的一个,然后对连接好的结果,去执行where条件查询,where后面的列可以不是连接相关的列,where后面出现的是某一个列的条件,是对行的筛选条件,不是列与列的连接关系。where是对A或B筛选之后的数据再去按照ON的条件去连接 比如select * from employee ...
SQL中ON和WHERE条件的区别
区别大了,on 是用在 表与表间(left join 、right join 、inner join 、full join)的连接条件 ,where是查询条件,两个是可以一起用的。如:select a.*,b.from a left join b --a表 左连接 b表 on a.id=b.aid --连接条件 where a.name = "column" --查询条件 ...