我试图了解互联网上的自我学习,但找不到令人满意的解释。任何人都可以用一个例子来解释它,比如在哪里使用它以及为什么要使用它?如果你能用查询解释它会很好。
答案 0 :(得分:6)
Wikipedia的Join(SQL)页面有一个特定的entry about self-join,包括一个例子。
作为另一个例子,假设您有一个包含Id
和ParentId
列的Person表来表示父母,您可以执行以下操作:
SELECT parent.Name, child.Name
FROM Person parent
INNER JOIN Person child ON parent.Id = child.ParentId
答案 1 :(得分:3)
使用自我加入的原因是层次结构。
例如为: 您将所有员工都放在一张桌子中。每个员工都有经理。因此,您可以将员工与其经理联系起来。
表emp(loyee)。 cols emp_id,经理,姓名
因此您可以将所有员工与经理的姓名联系起来
select e.name employeename, m.name managername
from emp e, emp m where e.manager = m.emp_id
答案 2 :(得分:1)
您想要自我加入的一个原因是在表格中找到重复项。假设你想在你的表中找到同名的人,你可以这样做:
SELECT table1.name FROM people AS table1 , people AS table2
WHERE table1.name = table2.name
AND table1.id != table2.id
答案 3 :(得分:0)
它与具有表本身副本的普通连接相同。
答案 4 :(得分:0)
自联接为管理员提供了一种将关系数据集中到单个表的强大方法。实际上,通过将特定表连接到自身来执行自连接。见
http://www.devshed.com/c/a/MySQL/MySQL-Table-Joins/4/
答案 5 :(得分:0)