我将这些数据存储在Mysql 5数据库的表中。
表格数据
| attrName | attrValue |
-----------------------------------------
| price | 12.23 |
| current_p | 23.99 |
| price_dev | 0.1222 |
| timestamp | 2009-07-14 00:00:00 EDT |
| price | 14.23 |
| current_p | 13.11 |
| price_dev | 0.7444 |
| timestamp | 2009-07-14 00:01:00 EDT |
| price | 11.00 |
| current_p | 18.55 |
| price_dev | 0.3572 |
| timestamp | 2009-07-14 00:02:00 EDT |
现在我想进行查询以这种方式显示所有数据(按时间戳排序)
| timestamp | price | current_p | price_dev |
-------------------------------------------------------------
| 2009-07-14 00:00:00 EDT | 12.23 | 23.99 | 0.1222 |
| 2009-07-14 00:01:00 EDT | 14.23 | 13.11 | 0.7444 |
| 2009-07-14 00:02:00 EDT | 11.00 | 18.55 | 0.3572 |
你能建议我正确的查询吗?
非常感谢,
pasquy73
答案 0 :(得分:1)
您似乎依赖于表中行的顺序来确定"组"属性。
但是在SQL中,表中的行没有隐式顺序或位置,您只能通过某个值列对行进行排序或分组。
所以你必须添加一个列来关联它们:
dX = 0
然后您可以使用各种解决方案,这些解决方案在entity-attribute-value标记下的其他位置有详细记录。
例如:
| eventId | attrName | attrValue |
-------------------------------------------------
| 1234 | price | 12.23 |
| 1234 | current_p | 23.99 |
| 1234 | price_dev | 0.1222 |
| 1234 | timestamp | 2009-07-14 00:00:00 EDT |
| 1235 | price | 14.23 |
| 1235 | current_p | 13.11 |
| 1235 | price_dev | 0.7444 |
| 1235 | timestamp | 2009-07-14 00:01:00 EDT |
| 1236 | price | 11.00 |
| 1236 | current_p | 18.55 |
| 1236 | price_dev | 0.3572 |
| 1236 | timestamp | 2009-07-14 00:02:00 EDT |
如果您不想这样做,那么您必须以不同的方式存储数据,将属性放在适当的列中而不是此键值设计。