曾经有一个初学SQL编程的朋友问我:“什么是自关联?”我跟他解释说,自关联就是在SQL语句中,一张表和它自己进行关联操作。他眼神疑惑地问:“那有什么用呢?”实际上,自关联在某些情况下非常有用呢。简单来说,自关联指的就是将一张表与它自己连接起来。我们给表起不同的别名,以区分每个表的不同实例。然后,通过连接条件将表的列与自身的列匹配,建立关联。实际上,自关联并不难理解。你可以把参与关联的表看作是两张结构和数据完全相同但表名不同的表。举个例子,假设有一个员工表,里面包含了员工的姓名、上级ID等信息。现在想查询每个员工的姓名以及他们的上级姓名。这时,就可以使用自关联来实现:SELECT e1.name AS employee_name, e2.name AS manager_nameFROM employees AS e1INNER JOIN employees AS e2ON e1.manager_id = e2.employee_id;在这个例子中,原始的员工表被起了两个别名e1和e2。然后,通过连接条件e1.manager_id = e2.employee_id来实现员工表与自身的关联。最终,得到了每个员工以及他们的上级的姓名。从这个例子可以看出,自关联常常用于类似组织架构这样有层级关系的查询中。在文章评论模型中,它也经常用于查询某个评论的所有回复评论的情况。
干货推荐:
SQL小技巧1:where条件后为什么要写1=1?入门Linux操作系统,一定要学会这70个命令!六大场景36种数据分析模型及方法图示,数据分析师必备!啃下这50道笔试题,你就是SQL专家!(附答案,收藏备用)史上最全SQL基础知识总结(理论+举例+10条吐血建议)
【SQL笔试题免费领取】
关注公众号【跟强哥学SQL】,回复关键字【笔试】获取链接。