SQL Self Join

时间:2020-02-23 14:32:33  来源:igfitidea点击:

在本文中,我们将重点关注SQL Self Join。
正如我们在SQL Join系列教程中已经看到的那样,通过Joins,我们可以根据条件关联来自不同记录表的信息。

现在,在这篇文章中,我们将详细介绍Self Join的工作。

什么是SQL中的自连接?

" SQL自连接"使管理员可以将单个表与其自身连接。
即,它连接数据记录并将其与自身关联。

因此,自连接在它们之间保持"一元关系"。
其中表的每个记录(行)都被组合并与其自身以及表的每个其他记录相关联。

当我们遇到需要比较具有相同表的数据的情况时,自联接很有用。

此外,在数据库的单个表中对层次结构建模很有用。
现在,让我们在接下来的部分中重点介绍"自我连接"的结构。

SQL Self Join的语法

看看下面的语法!

SELECT columns
FROM table obj1, table obj2
WHERE condition;

其中我们创建同一表的两个不同对象,并将该表称为同一数据库内的两个不同表。

因此,它可以被称为单个表的两个副本/副本之间的联接。

自连接例子

最初,我们使用SQL Create查询创建了一个表" Stud_Info"来存储学生信息。
此外,我们使用插入查询为其添加了值。

create table Stud_Info(stud_id integer, Name varchar(200), sub varchar(200));

insert into Stud_Info(stud_id, Name, sub) values(001, 'John','Maths');

insert into Stud_Info(stud_id, Name, sub) values(002, 'Mary','Science');

insert into Stud_Info(stud_id, Name, sub) values(003, 'Ray','Social Science');

insert into Stud_Info(stud_id, Name, sub) values(004, 'Jim','History');

insert into Stud_Info(stud_id, Name, sub) values(005, 'Rick','Geo');

现在,我们在上表中应用"自联接",以将数据记录与同一表的其他记录链接。

例:

SELECT X.Name AS Student_Name,Y.sub AS Subject
FROM Stud_Info X, Stud_Info Y
WHERE X.stud_id < Y.stud_id;