我需要编写一个select语句,它不仅收集来自多个表的信息,还收集某个表中与同一个表中其他行中的数据匹配的信息。
因此,虽然连接可用于多表问题,但据我所知,我无法“加入”同一表中的列a和列b。
这是详细信息
我有以下表格
CR,VM和文件夹
我需要选择以下内容:
CR的ID和名称
文件夹名称
文件夹名称不在文件夹表中,为了找到它,我需要首先从CR获取“ID”并将其与VM中的“ObjectID”匹配 - 然后该行中的“Location”列与ObjectID匹配VM表中的另一行。
然后我需要将文件夹中的ID与该ObjectID匹配,并检索表“Folder”中的“Name”以检索文件夹名称“。
我不知道从哪里开始,我应该使用游标吗?
答案 0 :(得分: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