mysql - 如何使用mysql中的给定条件查询架构中所有表中的相同列?

标签 mysql database

我有一个数据库“仓库”,其中包含每日库存记录表,每天一个表。

现在,我需要检查库存水平的历史变化。输出将根据特定条件打印每天的库存。

我不确定如何描述它,因此我创建了模式、其表和预期输出的简化示例。

模式“warehouse”有一个表列表:

enter image description here

每个表都包含相同的产品 ID 和库存列,下面是表 101

enter image description here

对于每个表,我需要执行一个查询: 从 [表名称] 中选择 count(*) 作为 num_of_product_with_inventory。在获得每个表的查询结果后,我应该得到如下所示的输出:

enter image description here

谁能告诉我查询应该是什么样子才能获得最终输出?我只知道基本的查询,不知道如何将它们组合在一起。谢谢!

最佳答案

您拥有的数据模型使您的工作变得比应有的更加困难。 如果必须保留它,则需要使用存储过程或在代码中(而不是在 sql 中)执行循环。

但您真正应该做的是更改数据模型。 完全不建议每天创建一张表!

它是数据元数据的混合体。表结构应该代表您存储的不同类型的数据,而您的数据中应该包含在日期 X 和日期 Y 上拥有不同库存的事实。

因此,建议创建一个包含 dateproduct_idwarehouse_inventory 列的表。如果它太大,您可以按日期(周/月/..)对其进行分区。然后您可以通过以下方式轻松获取数据:

SELECT date, count(*) AS num_of_products_with_inventory
FROM daily_inventory i
WHERE i.date BETWEEN '<some date>' and '<some date>'
GROUP BY date

关于mysql - 如何使用mysql中的给定条件查询架构中所有表中的相同列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38406219/

相关文章:

mysql - php/mysql 安装中的 unix 时间戳 - 将其存储为的最佳 MySQL 数据类型?

mysql - 将数据规范化到一张表中

database - 在数据库列中存储分隔列表真的那么糟糕吗?

java - JPA更新日期时间戳

android - Caused by : android. database.sqlite.SQLiteException: 表已存在

java - 设置Hibernate中表的存储引擎

c# - 将 MYSQL 查询合并到一个 GridView 中

php - 在MySQL中,我可以在分配索引时在一张表中看到2个id

php - 在 jquery 自动完成中发送帖子或获取信息

java - SQLite数据库更新功能找不到行ID?