Mysql语句on和where的区别
时间: 2023-09-27 08:11:55 浏览: 48
`ON` 和 `WHERE` 关键字都可以在 MySQL 查询中用来指定过滤条件,但是它们的使用场景有所不同。
`ON` 关键字是用于在 `JOIN` 操作中指定连接条件的。`ON` 关键字用于在两个或多个表之间建立连接关系时指定连接条件,它是在 `JOIN` 子句之后使用的。例如:
```
SELECT *
FROM table1
JOIN table2 ON table1.id = table2.id;
```
这里的 `ON` 就是指定了连接条件 `table1.id = table2.id`。
`WHERE` 关键字是用于指定过滤条件的。`WHERE` 关键字用于在查询中指定筛选条件,它是在 `FROM` 子句之后使用的。例如:
```
SELECT *
FROM table1
WHERE table1.id = 1;
```
这里的 `WHERE` 就是指定了过滤条件 `table1.id = 1`。
因此,`ON` 关键字用于指定连接条件,而 `WHERE` 关键字用于指定过滤条件。在进行连接操作时需要使用 `ON` 关键字,而在进行筛选操作时需要使用 `WHERE` 关键字。
相关问题
mysql的join中on和where
MySQL中的JOIN操作用于将两个或多个表中的数据连接起来。在JOIN操作中,可以使用ON和WHERE子句来指定连接条件。
ON子句用于指定连接条件,它通常用于连接两个表中的列。例如,如果要连接两个表中的ID列,可以使用以下语句:
SELECT *
FROM table1
JOIN table2
ON table1.ID = table2.ID;
WHERE子句用于指定过滤条件,它通常用于筛选连接后的结果。例如,如果要筛选连接后的结果中的某些行,可以使用以下语句:
SELECT *
FROM table1
JOIN table2
ON table1.ID = table2.ID
WHERE table1.name = 'John';
在使用JOIN操作时,ON子句和WHERE子句的区别在于,ON子句用于指定连接条件,而WHERE子句用于指定过滤条件。因此,在使用JOIN操作时,应该根据需要选择使用ON子句或WHERE子句来指定条件。
mysql left join on 条件和whered 的区别
`LEFT JOIN` 和 `WHERE` 语句都可以用于对查询结果进行筛选,但它们的作用不同。
`LEFT JOIN` 用于连接两个或多个表,以便将它们的行合并到一起。在 `LEFT JOIN` 中,即使右侧的表中没有匹配的行,左侧的表中的所有行也会出现在结果中。`ON` 条件用于指定连接的条件,即确定哪些行应该合并在一起。
`WHERE` 用于对查询结果进行过滤,以便只返回符合指定条件的行。`WHERE` 条件是在 `JOIN` 操作完成之后应用的,它可以进一步筛选已经合并在一起的行。相比之下,`ON` 条件是在 `JOIN` 操作时应用的,它用于确定哪些行应该合并在一起。
因此,`LEFT JOIN ON` 和 `WHERE` 语句的区别在于,前者用于连接表并合并行,后者用于对已经合并的行进行筛选。