迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 数据库 > MySQL >

在 MySQL 中连接 3 个表

作者:迹忆客 最近更新:2024/03/25 浏览次数:

在本教程中,我们将学习如何在 MySQL 中连接三个表。

企业和组织可能必须基于所有三个表共有的特定匹配列同时可视化三个表。在连接的帮助下,这个操作在 MySQL 中是允许的。

我们可以根据我们的要求从不同的表中获取列,并根据所有共同的特定列连接表。例如,我们有三个名为 table_1table_2table_3 的表。

第一个表有名字,第二个有姓氏,最后一个有地址。每个表都有一个主 ID,可以使用公共主 ID MySQL 将这些表合并或可视化为一个表。

让我们了解这种方法是如何工作的。但在开始之前,我们必须通过创建一个表 student_details 以及几行来创建三个虚拟数据集。

-- create the table student_details
CREATE TABLE student_details(
  stu_id int,
  stu_firstName varchar(255) DEFAULT NULL,
  stu_lastName varchar(255) DEFAULT NULL,
  primary key(stu_id)
);
-- insert rows to the table student_details
INSERT INTO student_details(stu_id,stu_firstName,stu_lastName) 
 VALUES(1,"Preet","Sanghavi"),
 (2,"Rich","John"),
 (3,"Veron","Brow"),
 (4,"Geo","Jos"),
 (5,"Hash","Shah"),
 (6,"Sachin","Parker"),
 (7,"David","Miller");

要查看数据中的条目,我们使用以下代码。

SELECT * FROM student_details;

输出:

stu_id	stu_firstName	stu_lastName
1	      Preet	        Sanghavi
2	      Rich	        John
3	      Veron	        Brow
4	      Geo	        Jos
5	      Hash	        Shah
6	      Sachin	    Parker
7	      David	        Miller

接下来,我们需要另一个名为 student_marks 的表,其中包含与 stu_id 对应的每个学生的分数。我们可以使用以下查询创建这样的表。

-- create the table student_details
CREATE TABLE student_marks(
  stu_id int,
  stu_marks int
);
-- insert rows to the table student_details
INSERT INTO student_marks(stu_id,stu_marks) 
 VALUES(1,10),
 (2,20),
 (3,30),
 (4,7),
 (5,9),
 (6,35),
 (7,15);

我们可以使用以下查询可视化该表。

SELECT * from student_marks;

输出:

stu_id  stu_marks
1		10
2		20
3		30
4		7
5		9
6		35
7		15

最后,让我们创建一个名为 student_email 的第三个表。该表将拥有 stu_idstu_email 列。stu_id 列对于所有三个表都是通用的,而 stu_email 列将代表正在考虑的学生的电子邮件地址。

我们可以在以下查询的帮助下创建第三个表。

-- CREATE TABLE student_email
CREATE TABLE student_email(
  stu_id int,
  stu_email varchar(255) DEFAULT NULL
);

-- insert rows to the table student_email
INSERT INTO student_email(stu_id,stu_email) 
 VALUES(1,"abc@d.in"),
 (2,"SEAabc@d.in"),
 (3,"DEabc@d.in"),
 (4,"KARTabc@d.in"),
 (5,"MARIOabc@d.in"),
 (6,"SPETERabc@d.in"),
 (7,"DAVIDabc@d.in");

我们可以使用以下查询可视化上面创建的 student_email 表。

SELECT * from student_email;

输出:

stu_id	stu_email
1		abc@d.in
2		SEAabc@d.in
3		DEabc@d.in
4		KARTabc@d.in
5		MARIOabc@d.in
6		SPETERabc@d.in
7		DAVIDabc@d.in

让我们尝试在公共列 stu_id 的帮助下从上面创建的三个表中获取三个值,特别是学生的名字、分数和电子邮件地址。


在 MySQL 中连接 3 个表

要合并我们的三个表,我们可以使用公共列并借助以下查询从不同的表中获取不同的列。

select a.stu_firstName as "Name", b.stu_email as "Email", c.stu_marks as "Marks"
from student_details a, student_email b, student_marks c
where a.stu_id = b.stu_id and b.stu_id = c.stu_id 

如上面的查询所示,我们正在根据共同的学生身份连接三个表。上面代码的输出如下。

Name	Email			Marks
Preet	abc@d.in		10
Rich	SEAabc@d.in		20
Veron	DEabc@d.in		30
Geo		KARTabc@d.in	7
Hash	MARIOabc@d.in	9
Sachin	SPETERabc@d.in	35
David	DAVIDabc@d.in	15

因此,借助 WHEREON 子句,我们可以有效地连接三个不同的表,并根据 MySQL 中的常见条件将它们的列可视化为一个。

上一篇:MySQL 中 UPDATE JOIN 的使用

下一篇:没有了

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

MySQL 级联删除

发布时间:2024/03/25 浏览次数:114 分类:MySQL

本文介绍 MySQL 中的删除级联

MySQL 中的 rank 函数

发布时间:2024/03/25 浏览次数:156 分类:MySQL

本教程演示了在 MySQL 数据库中使用 rank 函数。

MySQL 函数

发布时间:2024/03/25 浏览次数:74 分类:MySQL

本文介绍如何在 MySQL 中使用和创建一个简单的函数。

MySQL with 子句

发布时间:2024/03/25 浏览次数:79 分类:MySQL

本教程教你 MySQL with 子句。它还指导你在何处以及如何使用 MySQL With 子句

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便