📜  SQL 中的多重连接

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

SQL 中的多重连接

结构化查询语言或 SQL 是一种标准数据库语言,用于从 MySQL、Oracle 等关系数据库中创建、维护和检索数据。在本文中,我们将使用 Microsoft SQL Server。

多个连接:
这里我们将实现多连接的概念。多个连接可以被描述为一个查询,其中包含多次使用的相同或不同类型的连接,从而使它们能够组合多个表。对于本文,我们将首先创建一个数据库 geeks,然后在其中创建三个表,然后在这些表上运行我们的查询。

多个连接的维恩图表示

1. 创建数据库:

CREATE geeks;

输出 -
查询正常,1 行受影响

2. 使用这个数据库:



USE geeks;

输出 -
数据库已更改

3. 向数据库添加表:

create table students(id int, name varchar(50),branch varchar(50));
create table marks(id int, marks int);
create table attendance(id int, attendance int);

输出 -
查询正常,0 行受影响
查询正常,0 行受影响
查询正常,0 行受影响

4. 插入数据到表中:
学生表——

--students
insert into students values(1,'anurag','cse');
insert into students values(2,'harsh','ece');
insert into students values(3,'sumit','ece');
insert into students values(4,'kae','cse');

输出 -
查询正常,1 行受影响
查询正常,1 行受影响
查询正常,1 行受影响
查询正常,1 行受影响

5. 标记表:

--marks
insert into marks values(1,95);
insert into marks values(2,85);
insert into marks values(3,80);
insert into marks values(4,65);

输出 -
查询正常,1 行受影响
查询正常,1 行受影响
查询正常,1 行受影响
查询正常,1 行受影响

6.考勤表:



--attendance
insert into attendance values(1,75);
insert into attendance values(2,65);
insert into attendance values(3,80);
insert into attendance values(4,80);

输出 -
查询正常,1 行受影响
查询正常,1 行受影响
查询正常,1 行受影响
查询正常,1 行受影响

7.查看表内数据:

select *from students;

输出 -
学生桌 –

idnamebranch
1anuragcse
2harshece
3sumitece
4kaecse

select *from marks;

输出 -
标记表-

id marks
195
285
380
465

select *from attendance;

输出 -
考勤表-

idattendance
175
265
380
487

最终输出的屏幕截图 -

数据插入后的表格

8. 执行多个连接:
现在我们将对我们的表执行多个连接。首先,我们将内联学生表和分数表,然后将结果表与仅出勤率大于或等于 75 的学生的出勤表联接。

句法 -

JOIN
table1.column_name=table2.column_name
JOIN
table2.column_name=table3.column_name

示例查询:

select s.id, name, marks, attendance
from students as s
inner join
marks as m
on s.id=m.id
inner join
attendance as a
on m.id=a.id
where a.attendance>=75;

输出 -

idnamemarksattendance
1anurag9575
3sumit8080
4kae6587

最终输出的屏幕截图 -

多重连接后的输出

参考:https://www.geeksforgeeks.org/sql-query-to-find-the-highest-salary-of-each-department/