inner join 先走 on 还是where
时间: 2024-09-09 20:11:41 浏览: 61
解析sql语句中left_join、inner_join中的on与where的区别
5星 · 资源好评率100%
在SQL查询中,`INNER JOIN`和`ON`或者`WHERE`一起使用是用来连接两个表并过滤结果的。它们的主要区别在于作用的时机和效果。
`INNER JOIN`是一个联接操作符,它会查找两个表中匹配条件的行,并合并结果集。当你使用`JOIN`关键字后,接着使用`ON`来指定了连接条件,如两个表之间共享的键(通常是主键或外键)。`ON`在这里定义了JOIN的具体规则,它是在实际执行JOIN操作之前确定连接哪些行的。
另一方面,`WHERE`是一个过滤条件,通常用于已经通过`JOIN`获取的结果集中进一步筛选。它可以应用在`JOIN`之后,对结果集进行细化选择,只保留那些满足`WHERE`条件的行。
所以,在大多数情况下,先用`INNER JOIN`定义联接规则,然后用`WHERE`进行后续的过滤更为常见。这是因为`ON`决定了哪些行会被考虑参与联接,而`WHERE`则用来决定从这些行中选取哪些满足特定条件。
示例:
```sql
SELECT *
FROM table1
INNER JOIN table2 ON table1.common_key = table2.common_key
WHERE condition;
```
在这个例子中,`ON`用于定义联接条件,`WHERE`用于进一步筛选结果。
阅读全文