0
I have two tables. First is ItemDetails and second is ItemHeaders.
ItemHeaders:
ItemID ItemName
1 Apple
2 Orange
3 Grapes
ItemDetails:
ID ItemHeader1 ItemHeader2 ItemHeader3
1 1 2 1
2 3 2 1
3 2 1 2
4 2 3 3
OutPut:
ID Categroy1 Categroy2 Category3
1 Apple Orange Apple
2 Grapes Orange Apple
3 Orange Apple Orange
4 Orange Grapes Grapes
My Query:
Select ID, i1.ItemName as Categroy1, i2.ItemName as Categroy2, i3.ItemName as Categroy3
From ItemDetails d
Left Join ItemHeaders i1 on d.ItemHeader1 = i1.ItemID
Left Join ItemHeaders i2 on d.ItemHeader2 = i2.ItemID
Left Join ItemHeaders i3 on d.ItemHeader3 = i3.ItemID
问题:这是示例数据,我在ItemDetails中有50,000条记录。当我运行我的查询时,需要很多时间。有人可以建议优化查询或最佳选择来达到上述结果吗?如果问题或疑问不明确,请让我知道。将垂直值映射到SQL Server中的水平行
编辑: ItemID上有一个索引。你说过枢轴。我如何使用数据透视表来获得我的结果?而且还有10个头,而不是3.这里我只提到3.
你有'ItemID'字段的indexe吗? – valex
是3的标头的最大数量? – Jayvee