易百教程

42、什么是自连接(SELF JOIN)?自连接的要求是什么?

SELF JOIN 用于将表与其自身连接。 这种连接可以使用表别名来执行,这样我们就可以避免在一个句子中重复相同的表名。 如果我们在单个查询中多次使用相同的表名而不使用表别名,它将引发错误。

当我们想要将数据与同一表本身中的其他数据组合时,需要使用 SELF JOIN。 将层次结构转换为平面结构通常非常有用。

以下是 SELF JOIN 的语法:

SELECT column_lists    
FROM table1 AS T1, table1 AS T2    
WHERE join_conditions;

例子

假设有一个表 ‘Student’ 包含以下数据:

如果想从student_id相等且course_id不相等的表中获取student_id和name,可以使用自连接来完成:

SELECT  s1.student_id, s1.name    
FROM student AS s1, student s2    
WHERE s1.student_id=s2.student_id    
AND s1.course_id<>s2.course_id;