Mysql中where与on的区别及何时使用详析

yizhihongxing

下面是关于"Mysql中WHERE与ON的区别及何时使用"的完整攻略:

区别

WHERE

  • WHERE是用于筛选行的(即对于SELECT语句或者UPDATE语句,我们使用WHERE语句来筛选需要处理的行记录);
  • WHERE是在数据表中,查询完成后进行过滤的,即先从表中检索记录,再通过WHERE进行判断,将符合条件的记录返回;

示例1:

SELECT * FROM表A 
WHERE A.X = '值1';

上面的语句会返回表A中所有X列值等于'值1'的所有记录。

ON

  • ON是用于连接表(即通过JOIN语句,连接两张或多张数据表,需要在ON子句中指定连接条件);
  • 在JOIN操作中,我们可以使用ON语句来指定两个表的关联条件,例如常用的INNER JOIN就是通过ON子句来指定连接条件的;

示例2:

SELECT * FROM 表A 
INNER JOIN 表B 
ON A.X = B.X;

上面的语句会通过INNER JOIN将表A和表B关联起来,并且要求它们的X列的值是相等的。

何时使用

  • 使用WHERE子句来定义过滤条件,只能用于当前查询的两个表的列之间无关联关系的条件比较;
  • 使用ON子句,可以实现各种连接操作的条件详细说明,包括JOIN、LEFT JOIN、RIGHT JOIN等等;

所以,当我们需要在连接多张数据表的时候,应该使用ON,而在针对单张数据表时,只需要使用WHERE就可以了。

示例3:

SELECT A.X, SUM(B.Y) 
FROM 表A 
JOIN 表B 
ON A.ID = B.AID 
WHERE A.X = '值1' 
GROUP BY A.X;

上面的语句会连接表A和表B,返回A表中X列值等于'值1'的所有记录,并且通过A表的ID列和B表的AID列进行关联,最后通过对B表的Y列进行SUM,返回一个汇总结果。

总的来说,WHERE一般用于过滤需要查询的数据,而ON则用于连接多张数据表的条件指定。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Mysql中where与on的区别及何时使用详析 - Python技术站

(0)
上一篇 2023年5月22日
下一篇 2023年5月22日

相关文章

  • django1.11如何实时访问mysql数据库

    前几天,一直在研究django框架,发现它自身封装了很多有用的API,很有意思。比如,数据库操作基本的创表,查询,插值,更新,删除都有,很方便,再加上json库可以直接将数据json化,通过服务器传给前端并显示,连数据库也很快,响应迅速。 django 操作mysql数据库   取数据: 1 from blog.models import SfhdPredi…

    MySQL 2023年4月12日
    00
  • MySQL UPDATE 语句的非标准实现代码

    MySQL UPDATE 语句的非标准实现代码可以通过手动编写SQL语句来实现。下面是实现步骤和两个示例说明。 步骤一:连接MySQL数据库 在进行任何数据库操作之前,需要先连接到MySQL数据库。可以使用以下PHP代码实现: $conn = mysqli_connect($servername, $username, $password, $dbname)…

    database 2023年5月22日
    00
  • windows下php安装redis扩展

    查看当前PHP版本 代码中添加 phpinfo(); 下载对应的redis扩展 下载链接:https://pecl.php.net/package/redis因为我的PHP版本是5.6的,所以redis版本对应2.2.7。下载redis扩展文件并解压 安装redis扩展 将解压后的php_redis.dll文件放到php的ext目录下 修改php.ini文件…

    Redis 2023年4月13日
    00
  • 高质量PHP代码的50个实用技巧必备(上)

    让我们开始对“高质量PHP代码的50个实用技巧必备(上)”的完整攻略进行详细讲解。 概述 这篇攻略介绍了50个PHP编程技巧,旨在帮助开发者编写高质量的PHP代码。这50个技巧涵盖了多个方面,包括:代码规范、代码清晰度、代码性能等。本攻略重点关注以下几个方面: 熟悉PHP核心特性 遵循编码规范 定义足够的文档注释 将代码分解成易于维护的模块 理解如何避免常见…

    database 2023年5月22日
    00
  • 解决Redis启动警告问题

    下面为您详细讲解“解决Redis启动警告问题”的完整攻略。 问题描述 在启动 Redis 的过程中,可能会出现警告信息,如下所示: 32455:M 31 May 08:24:16.378 * Increased maximum number of open files to 10032 (it was originally set to 1024). 该警告…

    database 2023年5月22日
    00
  • MySQL备份脚本的写法

    以下是关于MySQL备份脚本的写法完整攻略。 一、备份脚本的编写 1. 安装并配置mysqldump mysqldump 是 MySQL 的官方备份工具,并且是备份 MySQL 数据库的常用工具。因此在编写备份脚本前,需要安装并配置 mysqldump,可以使用以下命令进行安装: sudo apt install mysql-client 安装成功后,需要配…

    database 2023年5月22日
    00
  • MySQL中slave_exec_mode参数详解

    MySQL中slave_exec_mode参数详解 MySQL是一款优秀的开源关系型数据库管理系统,可以实现大规模数据存储和快速检索。MySQL通过master-slave同步机制实现数据备份和容灾。在slave端,有slave_exec_mode参数可以控制复制过程中是否执行SQL语句。 什么是slave_exec_mode参数? MySQL中的slave…

    database 2023年5月22日
    00
  • sqlserver 动态创建临时表的语句分享

    下面是详细讲解 “SQL Server 动态创建临时表的语句分享” 的完整攻略。 什么是动态创建临时表? 动态创建临时表可以通过查询语句动态地创建临时表,这使得我们可以方便地在存储过程或者函数中使用临时表,而无需预先创建表结构。 SQL Server 动态创建临时表的语句 以下是动态创建临时表的SQL语句格式: CREATE TABLE #TableName…

    database 2023年5月21日
    00
合作推广
合作推广
分享本页
返回顶部