mysql中join和on怎么用

网友投稿 339 2023-12-04

mysql中join和on怎么用

小编给大家分享一下mysql中join和on怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

mysql中join和on怎么用

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

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

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

join的用法:连接

举例先看看,就懂了:

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

我们执行: stu join class

后,新的表成为:

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

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

后,表变为:

小提示:当只有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),teacherchar(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中join和on怎么用”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:命令行中如何停止mysql服务
下一篇:如何使用postgresql作为bootstrap tree view后端
相关文章

 发表评论

暂时没有评论,来抢沙发吧~