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

时间:2016-07-15 23:19:17

标签: mysql database

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

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

我不确定如何描述它,所以我创建了一个简化的模式样本,它的表和预期的输出。

架构“仓库”有一个表列表:

enter image description here

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

enter image description here

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

enter image description here

任何人都可以告诉我查询应该如何获得最终输出吗?我只知道基本的查询,并且不知道如何把它们放在一起。谢谢!

1 个答案:

答案 0 :(得分:0)

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

但你应该做的是改变数据模型。 根本不建议每天创建一个表格!

它是 DATA METADATA 的混合体。表结构应表示您存储的不同类型的数据,而您在日期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