问题描述
这是查询:
SELECT
AttributeName.ID,Attributes.LinkAnalyses,Attributes.Value,AttributeName.Name
FROM
AttributeName
FULL OUTER JOIN
Attributes ON AttributeName.ID = Attributes.LinkName
我应该返回空值,因为LinkAnalyses = 88仅具有最多10个链接名,而属性名具有最多21个链接名。我应该获得11个空值,但我什么都没有
输出:
属性表:
AttributeName表:
解决方法
完全连接将根据查询中使用的连接键来起作用。
在查询中,您使用AttributeName.ID = Attributes.LinkName,因此,如果表Attributes的LinkName列中缺少AttributeName中的任何ID(反之亦然)将返回空行。
您的列Attributes.LinkAnalysis中没有任何关系。
如果要LinkAnalysis明智的完全加入,可以使用以下查询
select
Id,Attributes.LinkAnalyses,Value,Name
from
( SELECT
an.LinkAnalyses,AttributeName.ID,AttributeName.Name
FROM
(Select distinct LinkAnalyses from Attributes ) an,AttributeName
) A
full join Attributes on Attributes.LinkAnalyses=A.LinkAnalyses and A.ID =Attributes.LinkName