LEFT JOIN ON 中的on 和where 有什么区别
时间: 2023-12-23 22:02:11 浏览: 92
在SQL中,LEFT JOIN是一种表连接操作,它可以将两个表中的数据进行联合。ON和WHERE都可以用来限制JOIN的结果,但它们之间有很大的区别。
ON子句是用来指定JOIN条件的,它是在执行JOIN之前进行条件匹配的。在使用ON子句时,只有满足ON中的条件的行才会被加入到结果集中。因此,ON子句中的条件是在连接两个表之间进行的。
WHERE子句是在JOIN之后对结果集进行筛选的。WHERE子句中的条件是在已经连接的结果集中进行的。如果WHERE条件不满足,那么行将不会被包含在最终的结果集中。
因此,ON和WHERE的区别在于它们执行条件的时间。ON是在JOIN之前进行条件匹配的,而WHERE是在JOIN之后对结果集进行筛选的。
相关问题
left join on和where有什么区别
左连接(left join)是用在查询的时候将两个表格连接起来,左边的表格的每一条记录都显示,而右边的表格只显示和左边的表格匹配的记录。而where是用来添加过滤器条件,只要符合条件的记录才会被显示出来。因此,左连接和where的作用是不同的,左连接是用来合并两个表格的数据,where是用来过滤显示的数据。
join on和left join on有什么区别
在使用join时,on和where都可以用来指定关联条件,但是它们之间有一些区别。
使用on时,关联条件是在执行join操作时就进行了匹配,而where是在执行完join操作后再进行条件匹配。因此,使用on可以提高查询效率,因为它可以减少不必要的匹配。
而left join和join的区别在于,left join会返回左表中所有的记录,而join只会返回两个表中都存在的记录。因此,如果左表中有一些记录在右表中没有匹配到,那么在使用left join时,这些记录也会被返回,但是在使用join时,这些记录会被过滤掉。
下面是一个使用join on和left join on的例子:
```sql
-- 使用join on
SELECT *
FROM table1
JOIN table2
ON table1.id = table2.id
WHERE table1.name = 'John';
-- 使用left join on
SELECT *
FROM table1
LEFT JOIN table2
ON table1.id = table2.id
WHERE table1.name = 'John';
```
阅读全文