有3个表格如下:
T_Artikel_T_Variation
------------------------------------
ID
FK_Variation_VariationAttribute_ID
FK_Artikel_ID
Position
T_Variation_VariationAttribute
------------------------------------
ID
FK_Variation_ID
T_Variation
------------------------------------
ID
Name
目标是根据T_Variation
从FK_Artikel_ID
表中获取记录,但从T_Artikel_T_Variation
开始按位置拍摄它们非常重要。
我收到了查询,但问题是当我首先从T_Artikel_T_Variation
按位置获取记录,然后当我用FK_Variation_ID
从T_Variation_VariationAttribute
获取记录时(在此表中{{1} }} 可以处于其他位置)因此,从FK_Variation_ID
开始,我可以从T_Variation
获得其他位置,而不是T_Variation
。
有没有办法保持排名顺序?
当前查询:
T_Artikel_T_Variation
答案 0 :(得分:0)
我不知道我是否真的明白你需要什么,但是 - 这肯定! - ORDER BY
中的IN-clause
ORDER BY
无法帮助您。
SELECT
应该应用于最外层ROW_NUMBER() OVER(...)
(但您可能会考虑;WITH var_varattr (FK_Variation_ID) As
(
SELECT FK_Variation_ID
FROM T_Variation_VariationAttribute
WHERE ID IN
(
SELECT FK_Variation_VariationAttribute_ID
FROM T_Artikel_T_Variation
WHERE FK_Artikel_ID = 46
)
)
select v.Id, v.Name
FROM T_Variation AS v
INNER JOIN T_Variation_VariationAttribute AS va ON v.ID=va.FK_VariationID
INNER JOIN T_Artikel_T_Variation AS a ON va.ID=a.FK_Variation_VariationAttribute_ID
WHERE v.ID IN
(
SELECT FK_Variation_ID from var_varattr
)
ORDER BY a.Position ASC
...)
尝试一下:
[ { name: 'P',
graph:
Graph {
_isDirected: true,
_isMultigraph: true,
// more properties
}
} ]
答案 1 :(得分:0)
您可以尝试此查询:
SELECT t.Id,
t.Name
FROM T_Variation t
INNER JOIN T_Variation_VariationAttribute v
ON t.ID = v.FK_Variation_ID
INNER JOIN T_Artikel_T_Variation a
ON v.ID = a.FK_Variation_VariationAttribute_ID
AND a.FK_Artikel_ID = 46
ORDER BY a.Position ASC
您将获得重复项,因为来自Position
的同一行可能有多个T_Variation
。所以这是一个问题,这个行必须如何排序多于一个Position
?