我有一个映射表,可以保存同一个表中的ID。
例如我有:
变量(表) 价值观(表) Variables_Values(映射表)
映射表包含以下字段:
VariableID
To_VariableID
To_ValueID
因此,一行可能有两个变量ID,或者一个变量ID和一个值ID。 它始终是一对,因此不能同时存在两个变量ID和一个值ID。
现在,在Variables和Values表中,有一个Name字段,因此变量和值也有名称。
我想创建一个查询,根据映射表中的ID显示名称,但我不确定如何。
现在我有一个返回如下结果的查询:
VariableName 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)
谢谢。
答案 0 :(得分: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