📜  在 SQL 中连接 4 个表

📅  最后修改于: 2022-05-13 01:54:27.930000             🧑  作者: Mango

在 SQL 中连接 4 个表

本文的目的是编写一个简单的程序,使用 SQL 中的 Join 和 Where 子句来连接两个表。下面是使用 MySQL 的相同实现。本主题的先决条件是您的计算机上安装了 MySQL 和 Apache Server。

介绍 :
在 SQL 中,查询是带有某种指令的请求,例如从数据库中插入、读取、删除和更新等记录。这些数据可用于各种目的,例如训练模型、查找数据中的模式等。在这里,我们将讨论在 SQL 中连接 4 个表的方法,并将对每个表使用 SQL 查询来实现,以便更好地理解。

方法 :
在这里,我们将讨论在 SQL 中实现 Joining 4 Tables 的方法和步骤。所以,让我们从创建一个数据库开始。

步骤 1:创建数据库 –
首先,我们将使用 SQL 查询创建数据库,如下所示。

CREATE DATABASE geeksforgeeks;

步骤 2:使用数据库 –
现在,我们将使用 SQL 查询来使用数据库,如下所示。



USE geeksforgeeks;

第 3 步:创建 table1 –
使用 SQL 查询创建一个表 1,名称为 s_marks,如下所示。

CREATE TABLE s_marks 
(
studentid int(10) PRIMARY KEY, 
subjectid VARCHAR(10), 
professorid int(10)
);

第 4 步:创建 table2 –
使用 SQL 查询为教授详细信息创建一个表 2 作为 p_details,如下所示。

CREATE TABLE p_details 
(
pid int(10) PRIMARY KEY, 
pname VARCHAR(50), 
pemail VARCHAR(50)
);

第 5 步:创建 table3 –
使用 SQL 查询为主题创建一个表作为主题,如下所示。

CREATE TABLE subjects  
(
subjectid VARCHAR(10) PRIMARY KEY, 
total_marks INT(5)
);

第 6 步:创建 table4 –
使用 SQL 查询为主题标记详细信息创建一个表,如下所示。  

CREATE TABLE marks_details 
(
total_marks INT(5) PRIMARY KEY, 
theory INT(5),
practical INT(5)
);

输出 :
表的输出如下。

步骤 7:插入数据:
使用 SQL 查询在上面创建的表中插入一些数据,如下所示。

插入 s_marks –

INSERT INTO `s_marks` (`studentid`, `subjectid`, `professorid`) VALUES ('1', 'KCS101', '1');
INSERT INTO `s_marks` (`studentid`, `subjectid`, `professorid`) VALUES ('2', 'KCS102', '2');

插入 p_details –

INSERT INTO `p_details` (`pid`, `pname`, `pemail`) VALUES ('1', 'Devesh', 'geeks@abc.com');
INSERT INTO `p_details` (`pid`, `pname`, `pemail`) VALUES ('2', 'Aditya', 'for@abc.com');

插入主题 -

INSERT INTO `subjects` (`subjectid`, `total_marks`) VALUES ('KCS101', '100');
INSERT INTO `subjects` (`subjectid`, `total_marks`) VALUES ('KCS102', '150');

插入到marks_details –

INSERT INTO `marks_details` (`total_marks`, `theory`, `practical`) VALUES ('100', '70', '30');
INSERT INTO `marks_details` (`total_marks`, `theory`, `practical`) VALUES ('150', '100', '50');

步骤 8:验证和连接表 -
运行查询以找出学科实践分数为 50 的学生的 ID、教授姓名,如下所示。

SELECT s_marks.studentid, p_details.pname FROM s_marks 
JOIN subjects ON s_marks.subjectid = subjects.subjectid 
JOIN marks_details ON subjects.total_marks = marks_details.total_marks
JOIN p_details ON p_details.pid = s_marks.professorid
WHERE marks_details.practical = '50';

输出 :

studentidpname
2Aditya