iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MySQL中的join以及on条件的用法解析
  • 738
分享到

MySQL中的join以及on条件的用法解析

MySQL中joinMySQLon条件MySQLjoinon条件 2022-11-19 06:11:18 738人浏览 八月长安
摘要

目录join的用法:连接on的用法:添加约束在数据库中验证Mysql中连接表时join和on的区别mysql中 join的用法:join具有 连接的作用,即当两个或者两个以上的表有关系时,需要用join来连接这些相关的表

mysql中 join的用法:join具有 连接的作用,即当两个或者两个以上的表有关系时,需要用join来连接这些相关的表,来处理或分析数据:

join的用法:连接

举例先看看,就懂了:

例如: 有一个表叫做stu,一个表叫class,stu join class会生成一个新的表,

MySQL中的join以及on条件的用法解析

MySQL中的join以及on条件的用法解析

我们执行: stu join class 后,新的表成为:

MySQL中的join以及on条件的用法解析

通过上面的例子总结一下:

  • join后的列名是两个表列名加起来的,可能会产生相同的列名,如id 和 name
  • 先用表stu中的一行数据和表class中的每一行数据不断的拼接,产生新的行
  • 再用表stu的第二行去和表class中的每一行数据拼接,以此类推
  • 表stu是3行,表class是2行,所以按照上面的规律会产成3*2 = 6行的新的表

on的用法:添加约束

一般我们join后的表,并不是我们想要的,这时,可以用 ON 来加一些条件:

例如:stu join class on classid = class.id ,on后面就是我们加的条件,我们想要classid这一列数据和id这一列的数据相等的数据,这里注意一下,join后的表列名是有重复的,所以ON后面的条件语句中我们要加上原来的表名。例如这里:classid = class.id,由于id有两列,这里我们是要表class中的id,所是是class.id。

所以: 执行:stu join class on classid = class.id 后,表变为:

MySQL中的join以及on条件的用法解析

小提示:当只有join时,其后面的on可以用where替换;

数据库中验证

mysql -u root -p                                 # 登录数据库,输入密码
CREATE DATABASE new;             # 创建数据库new
use new;                                            # 使用这个数据库
CREATE TABLE stu(id int primary key,name char(10),classid int)default charset = utf8mb4;             # 创建表stu
INSERT INTO stu (id,name,classid)VALUES(1,'A',1),(2,'B',1),(3,"C",2);                        # 插入数据
SELET * FROM stu;

MySQL中的join以及on条件的用法解析

CREATE TABLE class(id int primary key,name char(10),teacher char(10))default charset = utf8mb4;          # 创建表class
INSERT INTO class (id,name,teacher)VALUES(1,'实验班',"小红"),(2,'普通班',"小蓝");                      #  插入数据
SELECT * FROM class;

MySQL中的join以及on条件的用法解析

SELECT * FROM stu join class;                  #   用join连接两个表

MySQL中的join以及on条件的用法解析

SELECT * FROM stu join class ON classid = class.id;               # 用on来添加条件

MySQL中的join以及on条件的用法解析

MySQL中连接表时join和on的区别

数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户。 在使用left jion时,on和where条件的区别如下:

1、on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录。

2、where条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有left join的含义(必须返回左边表的记录)了,条件不为真的就全部过滤掉。 

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

您可能感兴趣的文档:

--结束END--

本文标题: MySQL中的join以及on条件的用法解析

本文链接: https://www.lsjlt.com/news/173125.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySQL中的join以及on条件的用法解析
    目录join的用法:连接on的用法:添加约束在数据库中验证mysql中连接表时join和on的区别MySQL中 join的用法:join具有 连接的作用,即当两个或者两个以上的表有关系时,需要用join来连接这些相关的表...
    99+
    2022-11-19
    MySQL中join MySQLon条件 MySQLjoinon条件
  • laravel中Join语法以及使用Join多个条件
    在laravel中我们常常会使用join,leftjion和rightjoin进行连表查询,非常的方便,但是我今天遇到一个问题,就是链表查询需要on多个条件,即我要订单的id和发货人...
    99+
    2022-11-11
  • laravel中Join语法以及使用Join多个条件的案例
    这篇文章主要介绍了laravel中Join语法以及使用Join多个条件的案例,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。在laravel中我们常常会使用join,leftj...
    99+
    2023-06-14
  • mysql中left join设置条件在on与where时的用法区别分析
    本文实例讲述了mysql中left join设置条件在on与where时的用法区别。分享给大家供大家参考,具体如下: 一、首先我们准备两张表来进行测试。 CREATE TABLE `a` ( ...
    99+
    2022-10-18
  • mysql left join的基本用法以及on与where的区别
    前言 我们在写sql语句的时候,总是无法避免使用到连接关键词,比如内连接、外连接。种类是很多的,我在这里贴上一张在别处找到的图: 这张图我认为是非常详细了,它展示出了SQL语句中常见的链接类型,以本文中的left jo...
    99+
    2023-05-05
    mysql left join
  • sql中的left join及on、where条件关键字的区别详解
    LEFT JOIN 关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行。 LEFT JOIN 关键字语法 SELECT co...
    99+
    2022-10-18
  • MySQL中多个left join on关联条件的顺序说明
    目录mysql多个left join on关联条件顺序结论案例SQL数据使用left join的on后查询碰到的大坑使用 WHERE使用 LEFT JOIN ...... ON &n...
    99+
    2022-11-19
    MySQL left join on left join on关联条件 多个left join on顺序
  • mysql中全连接full join...on...的用法说明
    目录mysql中全连接full join...on...用法mysql中join连接有哪几种?join有哪几种总结mysql中全连接full join...on...用法 大部分开发者可能会困惑,为什么我的sql语句怎么...
    99+
    2023-03-20
    mysql全连接
  • 详解mysql 使用left join添加where条件的问题分析
    当前需求: 有group和factor两张表,一个group对应多个factor,现在想查询有效的group和对应的有效的factor,两个表都有isDel逻辑删除标志。 最开始的错误写法一: SELEC&#...
    99+
    2022-05-29
    mysql left join where
  • MySQL left join操作中on和where放置条件的区别有哪些
    这篇文章给大家分享的是有关MySQL left join操作中on和where放置条件的区别有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。优先级两者放置相同条件,...
    99+
    2022-10-18
  • MySql中JOIN的用法示例详解
    目录笛卡尔积:CROSS JOIN内连接:INNER JOIN左连接:LEFT JOIN右连接:RIGHT JOIN外连接:OUTER JOINUSING子句自然连接:NATURE ...
    99+
    2022-11-13
  • mysql(5.6及以下)解析json的方法实例详解
    mysql(5.6及以下)解析json #json解析函数 DELIMITER $$ DROP FUNCTION IF EXISTS `json_extract_c`$$ CREATE ...
    99+
    2022-10-18
  • Python多线程以及多线程中join()的使用方法
    本篇内容主要讲解“Python多线程以及多线程中join()的使用方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python多线程以及多线程中join()的使用方法”吧!Python多线程与...
    99+
    2023-06-20
  • MySQL where条件is null 及is not null 的用法
    首先先了解is null 与 is not null 分别代表什么;is null 在查询中用于查询指定字段为null的数据、is not null 在查询中用于查询指定字段中不为null的数据(手动删除的无法查询); 语法为 selec...
    99+
    2023-09-25
    mysql Powered by 金山文档
  • mysql中“UUID();”的用法以及用处
            今天在sql语句学习中,看到了UUID();的语句, 查询学习后,做出记录。         在SQL语句中,使用SELECT UUID()语句可以获取一个随机生成的UUID(Universally Unique Iden...
    99+
    2023-10-11
    mysql 数据库
  • C语言中getchar的用法以及实例解析
    目录getchar解析一、getchar的返回类型及作用机制二、根据一段代码初步了解三、实例(“输入密码”)进一步了解1、代码达不到理想效果2、输入的密码中有...
    99+
    2022-11-13
  • Mysql中where与on的区别及何时使用详析
    之前在写连表查询的时候,老是分不清楚where和on的区别,导致有时写的SQL会出现一点小的问题,这里专门写篇文章做下记录,如果你也分不清,那么请参考 二者的区别及什么时候...
    99+
    2022-11-12
  • Python多线程以及多线程中join()的使用方法示例
    Python多线程与多进程中join()方法的效果是相同的。 下面仅以多线程为例: 首先需要明确几个概念: 知识点一: 当一个进程启动之后,会默认产生一个主线程,因为线程是程序执行流...
    99+
    2022-11-12
  • MySQL中EXPLAIN解释命令及用法的示例分析
    这篇文章将为大家详细讲解有关MySQL中EXPLAIN解释命令及用法的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1,情景描述:同事教我在mysql中用expl...
    99+
    2022-10-18
  • 怎样去解析VB.NET条件编译的应用方法
    这期内容当中小编将会给大家带来有关怎样去解析VB.NET条件编译的应用方法,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。VB.NET编程语言是一款由微软推出的新的编程语言,其具有面向对象特性,而且运行机制...
    99+
    2023-06-17
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作