首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

left join on and 与 left join on where的区别

数据库在通过连接两张多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户。       ...在使用left jion时,on和where条件的区别如下: 1、 on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录。...2、where条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有left join的含义(必须返回左边表的记录)了,条件不为真的就全部过滤掉。        ...join tab2 on (tab1.size = tab2.size) where tab2.name=’AAA’ 2、select * formtab1 left join tab2 on (tab1...left join,right join,full join的特殊性,不管on上的条件是否为真都会返回leftright表中的记录,full则具有left和right的特性的并集。

1.1K20

left join-on-and 与 left join-on-where 和 inner join on 加条件和where加条件的区别

数据库在通过连接两张多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户。...where则是在生成临时表之后使用的条件,此时已经不管是否使用了left join了,只要条件不为真的行,全部过滤掉。 在多表查询时,on 比 where 更早起作用。...u.age>20; 执行结果: (2)执行 left-join-on-where 写法SQL select u.name,u.age,s.scorefrom tb_user u left join...的 写法 left-join-on-and 在连表查询过程中先根据 on-and 条件过滤右表(即 tb_score 表),再执行 join 操作生成临时表,然后对临时表执行 where 条件,因此,on-and...写法会先对右表同时做2个条件的过滤 写法 left-join-on-where 在连表查询过程中先根据 on 条件过滤右表,再执行 join 操作生成临时表,然后对临时表执行 where 条件, 因此

1.6K30
您找到你想要的搜索结果了吗?
是的
没有找到

LEFT JOIN的时候应该用ON还是WHERE

说的是LEFT JOIN关联表中ON,WHERE后面跟条件的区别。 当时确实有点懵逼~经常做这种left join,inner join连接,却发现居然只是模糊的认识。...既然是面试题是left join,那咱就试试。 ? 从上述结果知道, left join会将左表的所有记录都显示出来,而在右表不匹配on条件的数据行则该列显示为Null。...而where条件由于在left join之外,所以是对连接之后的结果再次过滤。 那这是为什么呢?? 因为数据库在通过连接两张多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回。...既然left join是这个结果,那就刨根问底,inner join又是咋回事呢。 ?...inner join具有left和right的特性的并集,需要两个表中的数据都符合on条件,才能被筛选出来。 到这里,我们就明白了on和where之前的区别。

4.5K40

SQL中关于Join、Inner JoinLeft Join、Right Join、Full Join、On、 Where区别

前言:   今天主要的内容是要讲解SQL中关于Join、Inner JoinLeft Join、Right Join、Full Join、On、 Where区别和用法,不用我说其实前面的这些基本SQL...Join(where联立查询): 概念:用于两表多表之间数据联立查询 select * from Students s,Class c where s.ClassId=c.ClassId ?...Inner Join(内连接查询): 概念:与Join相同,两表多表之间联立查询数据,因此我们在使用多表join查询的时候既可以使用where关联,也可以是inner join关联查询 select...Left Join(左连接查询): 概念:以左表中的数据为主,即使与右表中的数据不匹配也会把左表中的所有数据返回 select * from Students s left join Class c...Right Join(右连接查询): 概念:与Left Join的用法相反,是以右表中的数据为主,即使左表中不存在匹配数据也会把右表中所有数据返回 select * from Students s right

2.4K20

LEFT JOIN条件在on后面和在where后面的区别

LEFT JOIN条件在ON后面和在WHERE后面的区别 Persion表 截屏2023-05-26 21.53.03.png City表 截屏2023-05-26 21.53.20.png 简单的...LEFT JOIN SELECT * FROM Person p LEFT JOIN City c ON p.City = c.City 执行结果 截屏2023-05-26 21.55.51.png...-26 21.57.25.png 我们把条件放到WHERE试试 SELECT * FROM Person p LEFT JOIN City c ON p.City = c.City WHERE c.City...2、where条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有left join的含义(必须返回左边表的记录)了,条件不为真的就全部过滤掉。...结论 1、LEFT JOIN 今天ON条件过滤时候,只会对右表数据条件过滤,对左表数据没有任何影响 2、WHERE 条件是对结果表进行过滤,所以会对左表数据产生影响 3、INNER JOIN ON

29520

数据库系列 | left join加上where条件咋了?

1SQL语句:left join后面加上where条件 数据库在通过连接两张多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户 2SQL LEFT JOIN 关键字 LEFT...JOIN 关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行。...3LEFT JOIN 关键字语法 SELECT column_name(s) FROM table_name1 LEFT JOIN table_name2 ON table_name1.column_name...=table_name2.column_name **注释:**在某些数据库中, LEFT JOIN 称为 LEFT OUTER JOIN。...where条件是在临时表生成好后,再对临时表进行过滤的条件 where 条件加上,已经没有left join的含义(必须返回左边表的记录)了,条件不为真的就全部过滤掉 过滤条件放在 where后面: 是先连接然生成临时查询结果

72210

SQL语句中 left join 后用 on 还是 where,区别大了!

数据库在通过连接两张多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户。...在使用left join时,on 和 where 条件的区别如下: on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录。...where条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有left join的含义(必须返回左边表的记录)了,条件不为真的就全部过滤掉。...join tab2 on (tab1.size = tab2.size) where tab2.name=’AAA’ select * form tab1 left join tab2 on (tab1...其实以上结果的关键原因就是left join,right join,full join的特殊性,不管on上的条件是否为真都会返回leftright表中的记录,full则具有left和right的特性的并集

1K10

SQL语句中 left join 后用 on 还是 where,区别大了!

s left join class c on s.classId=c.id and c.name="三年级三班" order by s.id 数据库在通过连接两张多张表来返回记录时,都会生成一张中间的临时表...在使用left join时,on 和 where 条件的区别如下: on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录。...where条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有left join的含义(必须返回左边表的记录)了,条件不为真的就全部过滤掉。...join tab2 on (tab1.size = tab2.size) where tab2.name=’AAA’ select * form tab1 left join tab2 on (tab1...join,right join,full join的特殊性,不管on上的条件是否为真都会返回leftright表中的记录,full则具有left和right的特性的并集。

42420

面试官:left join 后用 on 和 where 有什么区别?

* from student s left join class c on s.classId=c.id and c.name="三年级三班" order by s.id 数据库在通过连接两张多张表来返回记录时...在使用 left join 时,on 和 where 条件的区别如下: on 条件是在生成临时表时使用的条件,它不管 on 中的条件是否为真,都会返回左边表中的记录。...where 条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有 left join 的含义(必须返回左边表的记录)了,条件不为真的就全部过滤掉。...假设有两张表: 表 1:tab1 表 2:tab2 两条 SQL: select * form tab1 left join tab2 on (tab1.size = tab2.size) where...,full join 的特殊性,不管 on 上的条件是否为真都会返回 left right 表中的记录,full 则具有 left 和 right 的特性的并集。

44410

京东面试官问:LEFT JOIN 关联表中用 ON 还是 WHERE 跟条件有什么区别?

之前有码友去京东面试,被问到 LEFT JOIN 关联表中用 ON 还是 WHERE 跟条件有什么区别,很快就答出来了,可是追问什么原因造成这一情况的,一时没回答上来。...2、where条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有left join的含义(必须返回左边表的记录)了,条件不为真的就全部过滤掉。...join tab2 on (tab1.size = tab2.size) where tab2.name='AAA' 2、select * form tab1 left join tab2 on (tab1...tab2.name 1 10 10 AAA 2 20 (null) (null) 3 30 (null) (null) 其实以上结果的关键原因就是left join,right join,full...join的特殊性,不管on上的条件是否为真都会返回leftright表中的记录,full则具有left和right的特性的并集。

38230
领券