where 子句用于过滤单个表中的行,而 on 子句用于在 join 操作中过滤关联表中的行,根据指定条件比较两个表的列值。
WHERE 和 ON 在 SQL 中的区别
WHERE 和 ON 是 SQL 中用于过滤数据集的两个关键字,但它们用于不同的场景。
WHERE 子句
- WHERE 子句用于过滤从单个表中检索的行。
- 它位于 SELECT 语句的末尾,用于根据特定条件选择所选行的子集。
- WHERE 子句中使用的条件称为谓词,它可以基于列的值、函数结果或与常量的比较。
例如:
SELECT * FROM customers WHERE age > 30;
此查询将从 customers 表中检索所有年龄大于 30 的行。
ON 子句
- ON 子句用于在 JOIN 操作中过滤关联表中的行。
- 它位于 JOIN 关键字后面,用于指定用于连接两个表的条件。
- ON 子句中的条件用于比较两个表的列值,确保仅检索匹配的行。
例如:
SELECT * FROM orders o
JOIN customers c ON o.customer_id = c.id
WHERE c.age > 30;
此查询将从 orders 表 (o) 中检索所有订单,并将其与 customers 表 (c) 关联,仅保留与年龄大于 30 的客户关联的订单。
总结
- WHERE 子句用于过滤单个表中的行。
- ON 子句用于在 JOIN 操作中过滤关联表中的行。
以上就是sql中where和on区别的详细内容,更多请关注编程网其它相关文章!