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;