解释自我加入

时间:2011-11-12 10:27:21

标签: mysql join

我试图了解互联网上的自我学习,但找不到令人满意的解释。任何人都可以用一个例子来解释它,比如在哪里使用它以及为什么要使用它?如果你能用查询解释它会很好。

6 个答案:

答案 0 :(得分:6)

Wikipedia的Join(SQL)页面有一个特定的entry about self-join,包括一个例子。

作为另一个例子,假设您有一个包含IdParentId列的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)

自我加入?

例如我们拿这张桌子 enter image description here

SELECT CONCAT(m.name,',',m.email)AS'经理',CONCAT(e.name,',',e.email)AS'记者'来自拼贴画e JOIN拼贴画m ON m。 emp_id = e.role_id;

enter image description here