共计 1515 个字符,预计需要花费 4 分钟才能阅读完成。
丸趣 TV 小编给大家分享一下 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),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 中 join 和 on 怎么用”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注丸趣 TV 行业资讯频道!