1

我有一个映射表,可以保存同一个表中的 ID。

例如我有:

变量(表)值(表)Variables_Values(映射表)

映射表具有以下字段:

VariableID
To_VariableID
To_ValueID

因此,一行可能有两个变量 ID,或者一个变量 ID 和一个值 ID。它始终是一对,因此不能同时有两个变量 ID 和一个值 ID。

现在,在变量和值表中,有一个名称字段,因此变量和值也有名称。

我想创建一个查询,该查询将根据映射表中的 ID 显示名称,但我不确定如何。

现在我有一个查询,它返回如下所示的结果:

变量名 To_VariableID To_ValueID

我想显示 VariableName_2,ValueName 而不是 To_VariableID To_ValueID。

有这方面的技术吗?它可以是以下查询的组合吗?

SELECT map.ID, map.TransitionID, variable.Name
FROM Variables AS variable INNER JOIN Mapping AS map 
ON variable.VariableID = map.VariableID

SELECT variable.VariableID, variable.Name
FROM Variable AS variable
WHERE variable.VariableID IN ( SELECT map.To_VariableID FROM Mapping AS map)

SELECT value.Name
FROM Values AS value
WHERE value.ValueID IN ( SELECT map.To_ValueID FROM Mapping AS map)

谢谢你。

4

1 回答 1

1

就这么简单:

SELECT map.Transition_Set_Variable_ID, 
       map.Transition_ID,
       variable.Name,
       variable2.Name,
       value.Name
FROM Variables AS variable 
  INNER JOIN Mapping AS map ON variable.VariableID = map.VariableID
  LEFT JOIN Variables AS variable2 ON map.To_VariableID = variable2.VariableID
  LEFT JOIN Values AS value ON tsv.To_ValueID = value.ValueID
ORDER BY map.TransitionID, variable.VariableID 
于 2012-11-08T13:27:31.323 回答