• 技术文章 >数据库 >mysql教程

    mysql中join和on的用法是什么

    长期闲置长期闲置2021-12-28 15:28:03原创3413

    用法:1、join用于根据两个或多个表中的列之间的关系,获取存在于不同表中的数据,具有连接的作用,语法为“表1 join 表2”;2、on用于给连接的两个表之间添加约束条件,语法为“表1 join 表2 on 条件”。

    本教程操作环境:windows10系统、mysql8.0.22版本、Dell G3电脑。

    mysql中join和on的用法是什么

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

    join的用法:连接

    举例先看看,就懂了:

    例如: 有一个表叫做stu,一个表叫class,stu join class会生成一个新的表,
    在这里插入图片描述
    在这里插入图片描述
    我们执行: stu join class 后,新的表成为:
    在这里插入图片描述
    通过上面的例子总结一下:

    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 后,表变为:
    在这里插入图片描述
    小提示:当只有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;

    在这里插入图片描述

    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;

    在这里插入图片描述

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

    在这里插入图片描述

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

    在这里插入图片描述

    推荐学习:mysql视频教程

    以上就是mysql中join和on的用法是什么的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:mysql
    上一篇:停止mysql服务的命令行是什么 下一篇:mysql怎么查询所有字段的数据
    千万级数据并发解决方案

    相关文章推荐

    • mysql怎么删除slave• mysql 怎么查询库名• 如何解决mysql blob乱码问题• mysql表怎么加注释• 停止mysql服务的命令行是什么
    1/1

    PHP中文网