MySQL在多个表中找到多个产品的最低价格

时间:2016-04-07 04:33:40

标签: mysql

我有一个名为Pricelist的数据库。在其中有几个表格,例如。 Store1,store2等每个都有一个产品列表。大多数产品存在于每个商店中,但有些仅在一个或两个商店中存在。我希望有一些我可以在SQL中运行的东西(存储过程?)通过检查每个商店的价格找到产品的最低价格,然后当它找到最低价格时,它将获得该价格,以及UPC,描述和其他列,并将所有信息放在名为BestPrices的最终表中。然后它为每个商店中的每个产品再次完成所有操作。所以当它完成了。所有商店的每件商品都应该在BestPrices表中列出一次,价格最低,我选择的其他栏目中的附加信息也是如此。这可能吗?我知道很多。提前谢谢。

2 个答案:

答案 0 :(得分:0)

您可以创建临时/缓冲表来从表存储中收集数据,然后您可以从该表中查询以获得最低价格。

答案 1 :(得分:0)

如果你想要的只是显示最优惠的价格,那么SQL View就可以了。 View足以

  

通过查看每个产品的价格来查找产品的最低价格   存储...以及其他列...并为每个列再次执行   每个商店都有产品。

但是,SQL视图在运行时呈现,因此,您本身没有存储在表中的值。也就是说,最佳价格是在您调用视图时计算的

如果您希望存储这些值以供将来查看,那么您需要一个Stored Procedure,它将值插入物理表中。

在使用过程的情况下,您应该注意插入表格时现有数据会发生什么。

此外,您的帖子中不包含有关实际表格结构或所有表格中产品的公共标识符的详细信息。这些细节可以极大地影响View / Procedure的设计和性能。