where和on的区别
时间: 2024-06-09 12:06:32 浏览: 6
"where" 和 "on" 在不同的语境下有不同的含义。
一般来说,"where" 意味着某个地方或某个场所,例如:
- "Where are you going?"(你要去哪里?)
- "I know a place where we can get good pizza."(我知道一个地方,我们可以吃到好的比萨饼。)
而 "on" 则通常表示某个物体或者事情在另一个物体或事情的表面上,例如:
- "The book is on the table."(书在桌子上。)
- "I saw a spider on the wall."(我看到了一只蜘蛛在墙上。)
当谈到数据库时,"where" 和 "on" 也有不同的含义。"where" 用于筛选数据,例如:
- "SELECT * FROM students WHERE age > 20"(从学生表中选择所有年龄大于20岁的学生。)
而 "on" 通常用于连接表格,例如:
- "SELECT * FROM students INNER JOIN grades ON students.id = grades.student_id"(从学生表和成绩表中选择所有学生的信息,这两个表格是通过学生的ID连接在一起的。)
相关问题
where 和 join on 区别
在使用left join时,on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录。而where条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有left join的含义(必须返回左边表的记录)了,条件不为真的就全部过滤掉。\[1\]\[2\]
简而言之,on条件是在连接两个表时使用的条件,而where条件是在连接完成后对结果进行过滤的条件。on条件会影响连接的结果,而where条件只会影响最终的查询结果。\[1\]\[2\]
#### 引用[.reference_title]
- *1* [left join inner join on 和where区别](https://blog.csdn.net/qq_36579777/article/details/89412958)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* *3* [SQL基础知识:join操作后面的on与where的区别](https://blog.csdn.net/ZYC88888/article/details/112898812)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
on和where的区别
`ON` 和 `WHERE` 用于 SQL 查询时连接两个或多个表。`ON` 用于在 `JOIN` 操作中指定连接条件,而 `WHERE` 用于在 `SELECT` 操作中指定过滤条件。
具体来说,`ON` 用于在 `JOIN` 操作中将两个或多个表连接起来,并指定连接条件。例如:
```
SELECT *
FROM table1
INNER JOIN table2
ON table1.column1 = table2.column2;
```
这里使用 `ON` 来指定连接条件,即 `table1.column1 = table2.column2`,表示只有当这两列的值相等时才进行连接。
而 `WHERE` 则用于在 `SELECT` 操作中过滤结果。例如:
```
SELECT *
FROM table1
INNER JOIN table2
ON table1.column1 = table2.column2
WHERE table1.column3 = 'some value';
```
这里使用 `WHERE` 来过滤结果,即只返回在 `table1` 中 `column3` 列的值等于 `'some value'` 的行。注意,这个条件不是连接条件,而是过滤条件。
因此,`ON` 和 `WHERE` 有不同的用途和语法,需要根据具体情况来选择使用哪个。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)