我有两个表需要从中检索数据,但我还想添加一个新列(researchIDName),它将根据列researchID中的ID显示列companyname中的名称。
在excel中,xlookup就足够了,但我想知道是否有方法可以将它包含在我当前的SQL脚本中?
我已经在下面包含了我当前的脚本和表格的外观。
SELECT c1.SID, c1.FID, c1.companyname,
C1.parentID, c1.parentname, c1.companytype,
c1.companystatus, c2.researchID,
FROM c2 left join
c1
on c2.SID = c1.SID

*编辑根据戈登的评论,下面的脚本用于连接两个表,但现在我需要此脚本添加一个名为'researchIDName‘的额外列。
SELECT c1.SID, c1.FID, c1.companyname,
C1.parentID, c1.parentname, c1.companytype,
c1.companystatus, c2.researchID
FROM c1 LEFT JOIN
c2
ON c2.SID = c1.SID通常在Excel中,我会使用下面的xlookup公式将数据添加到'researchIDName‘列。我的问题是如何在SQL中添加这个额外的列。
XLOOKUP(researchID, c2.SID, C2.Companyname)**编辑..为了简化表格,我在下面添加了一个更新的图像(带有一个额外的表格c0)。因此,现在我有3个表,我想从其中看到SID,FID,注释,公司名称,ResearchID所有,还有一个额外的列命名为'ResearchIDName‘。在excel中,我只需要使用一个xlookup函数来查找researchID,然后从表c2中检索与之相关的公司名。请看下面的脚本,让我知道我应该添加什么,以便将此ResearchIDName列添加到我的结果中。
选择c0.FID,c0.Comments,c1.sid,c2.Companyname,c2.ResearchID,ResearchIDName
来自c0
c1.FID=c0.FID上的Left join c1
c2.SID=b2.SID上的Left join c2
发布于 2021-03-15 19:31:22
你的查询基本上是正确的。唯一的问题是,您可能需要来自c1的所有行以及来自c2的额外列。为此,c1表应该是LEFT JOIN中的第一个表
SELECT c1.SID, c1.FID, c1.companyname,
C1.parentID, c1.parentname, c1.companytype,
c1.companystatus, c2.researchID
FROM c1 LEFT JOIN
c2
ON c2.SID = c1.SID我还删除了FROM子句前面的逗号。
当然,如果c1中的所有SID都填充了正确的值,那么您根本不需要外部连接。在这种情况下,c1/c2在FROM子句中的顺序并不重要。
编辑:
如果要将该名称与researchId相关联,则应使用另一个JOIN
SELECT c1.SID, c1.FID, c1.companyname,
C1.parentID, c1.parentname, c1.companytype,
c1.companystatus, c2.researchID,
c2r.companyName
FROM c1 LEFT JOIN
c2
ON c2.SID = c1.SID LEFT JOIN
c2 c2r
ON c2r.SID = c2.ResarchIDhttps://stackoverflow.com/questions/66637084
复制相似问题