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;