1

我需要编写一个 select 语句,它不仅收集来自多个表的信息,还收集来自某个表中的信息,该表与同一个表中其他行中的数据相匹配。

因此,虽然连接适用于多表问题,但据我所知,我不能在同一个表中“连接”列 a 和列 b。

这是详细信息

我有以下表格

CR、VM 和文件夹

我需要选择以下内容:

来自 CR 的 ID 和名称

文件夹名称

但是文件夹名称不在文件夹表中,要找到它,我需要先从 CR 中获取“ID”并将其与 VM 中的“ObjectID”匹配 - 然后该行中的“Location”列与另一行的 ObjectID 匹配虚拟机表。

然后我需要将文件夹中的 ID 与该 ObjectID 匹配,并在“文件夹”表中检索“名称”以检索文件夹名称”。

我不知道从哪里开始,我应该为此使用游标吗?

4

1 回答 1

1

可以通过对连接的一侧进行别名来连接一个表。这可能足以让您入门。否则,我们将需要查看一些示例数据。

SELECT
  CR.ID,
  CR.Name,
  Folder.Name AS FolderName
FROM
  CR
  /* First join CR to VM */
  INNER JOIN VM ON CR.ID = VM.ObjectID
  /* Then join VM to itself aliased as VMLoc, mapping Location to ObjectID */
  INNER JOIN VM AS VMLoc ON VM.Location = VMLoc.ObjectID
  /* Finally join the second ObjectID to Folder to get Folder.Name */
  INNER JOIN Folder ON Folder.ID = VMLoc.ObjectID
于 2013-01-10T13:27:54.043 回答