我在表格中有这样的数据,
Item Attribute Value
---- --------- -----
cup color Red
cup size 16
cup type Plastic
是否可以运行将构建这样的行的查询
Item color size type
---- ----- ---- ----
cup Red 20 Plastic
该表是以这种方式构建的,因此我可以通过仅添加新行来添加其他“属性”。因此查询需要能够根据项目的属性数添加列。
任何想法? 感谢
答案 0 :(得分:0)
我认为你可能设计不佳。我可以建议一个替代方案吗?
项目(ID,NAME,DESCRIPTION,ETC ......) 属性(ID,NAME,DESCRIPTION) ItemAttribute(ID,ItemID,AttributeID,Value)
使用上述设计(可能是也可能不是最佳解决方案,但肯定会更好),您只需为每个项目添加一个ItemAttribute记录。您可以指定项目,属性和该属性的值。使用您当前的设计,您试图在单个表中表示多对多关系,这对我来说似乎不太实际(许多项目到多个属性)。
总之,我不认为你要求的是静态SQL语句。使用当前设置,您可以通过首先选择给定项的所有记录,然后检查以查看所选的属性,并相应地构建select子句来动态生成SQL语句。