所以我试图在游戏中的“股票市场”中存储产品的价格和数量信息,可用的数据是当前的购买价格,销售价格,最近7天内售出的商品数量,以及最近7天内购买的商品数量。
现在,我有一个过去24小时的购买价格表,列有(time,item1,item2,item3,...)在每一行中,有一个时间戳,然后是每件商品在那个时间的价格。
然后,我有一个几乎相同的表,分别表示卖价、买入量和卖出量(意思是,列名相同,但存储的数据不同)。
要重新创建表,请执行以下操作:
CREATE TABLE buy_prices (
time INTEGER NOT NULL,
item1 INTEGER NOT NULL DEFAULT 0,
item2 INTEGER NOT NULL DEFAULT 0,
...
itemN INTEGER NOT NULL DEFAULT 0
);
对表sell_prices、buy_volume和sell_volume重复上述操作
每隔一段时间,表buy_prices就会更新为
INSERT INTO buy_prices(time, item1, item2, ... itemN)
VALUES (api_response['lastUpdated'], api_response['item1']['buy'], api_response['item2']['buy'], ... api_response['itemN']['buy']);
然后类似于sell_prices、buy_volume、sell_volume (对于api响应使用不同的密钥)
这是我第一次创建数据库,所以我觉得我遗漏了一些非常明显的东西,但是有没有办法将所有这些都组合到一个表中呢?在我的脑海中,我在想一个像字典一样的东西,每个单元格将存储所有4个值,但我不知道这是否可能,也不知道这是否合理。
我是否应该有许多相似的表,或者是否有一个在每个单元格中有许多值的解决方案?
发布于 2021-07-26 01:57:18
您可以使用UNION或UNION ALL语句来合并这些表。UNION运算符删除消除重复行,而UNION ALL运算符不删除。
with merged_table as(
select field1, field2, field3...., fieldn
from tablename1
union
select field1, field2, field3...., fieldn
from tablename2 )
select * from merged_table;
您应该以相同的顺序从table1和table2中选择字段...
https://stackoverflow.com/questions/68521103
复制相似问题