MS SQL在一个查询中从同一个表中检索相关数据

时间:2013-12-11 10:05:23

标签: sql sql-server sql-server-2008 tsql

我有一个名为mc.staff的表,其最简单的形式是


id |名字| supervisorId


我需要一个查询,它会提取一个人的ID和名称,但也会在一行中提取他们的主管的ID和名称。我被告知使用某种自联接到表可以工作,但我似乎无法弄清楚它背后的逻辑。 任何指向正确方向的人都会受到赞赏。

1 个答案:

答案 0 :(得分:1)

您可以在此处选择使用INNER JOIN。 INNER JOIN用于组合两个或多个表中的行,基于它们之间的公共字段,只要BOTH表中存在匹配即可。我们将在这里使用的相似之处是mc.staff的supervisorId和mc.staff的id。

因此,以下查询将返回结果。

SELECT A.id, A.name, B.id, B.name
FROM mc.staff A
INNER JOIN mc.staff B ON A.supervisorId = B.id

如果我错了,请纠正我。