嵌套mysql视图的参数

时间:2016-04-20 22:06:46

标签: mysql vba

这是一个包含条形码的表,它属于不同的仓库。

    Barcode  |  Warehouse
_____________________________
    1111111  |  A
    2222222  |  B
    1111111  |  C
    3333333  |  A

这是一个包含条形码的表格。

    Barcode  |  Box
_____________________________
    1111111  |  0001
    2222222  |  0002

每个仓库的可用库存是第一个表中的金额加上框中的所有金额。 仓库A的例子:

 Barcode  
_________
 1111111  (from its warehouse)
 3333333  (from its warehouse)
 1111111  (from a box)
 2222222  (from a box)

这是一个简化的例子。在检索了条形码的总量之后,我将其与许多其他查询和表格交叉以将其转换为人类可读的报告。

确定, 这个想法是服务器端查询。 每个客户端(VBA msaccess)都将检索查询并使用其仓库代码对其进行过滤。

仓库A会这样称呼它:

从finalQuery中选择*,其中仓库就像' A' < ---但它不会工作,因为盒子'条形码避开了仓库领域,因此,他们将被排除在外。 "其中"应该在UNION ALL之前执行。

是否可以使用参数来专门检索仓库的条形码+所有方框'服务器端查询中的条形码?即使用户使用其代码调用最后一个查询,它也应该将参数下推到第一个嵌套查询。

还是其他任何技巧?也许我的计划错了?

在客户端操纵查询的问题在于它变得非常缓慢,因为正如我所说,在加入条形码后,我使用生成的查询来构建其他查询。

希望我能清楚地解释清楚。解释起来有些复杂。我会很感激任何建议,技巧,想法等

谢谢。

2 个答案:

答案 0 :(得分:0)

我认为您正在寻找的是JOIN声明。您可以使用公共Barcode列将Barcode-Warehouse表与条形码框表联系起来。这篇文章是一个很好的解释:http://www.tutorialspoint.com/mysql/mysql-using-joins.htm

您的服务器端查询最终将是这样的:

SELECT Barcode, Box, Warehouse FROM  Barcode-Warehouse LEFT JOIN Barcode-Box USING (Barcode);

这会产生一个结果集,每行都有条形码,盒子和仓库。然后,您的用户可以通过Warehouse过滤该结果,并仅检索他们感兴趣的记录。

答案 1 :(得分:0)

找到解决问题的方法: Can I create view with parameter in MySQL?

我通过添加以下内容来过滤第一个查询:

“仓库=功能()”

当我调用最终查询时,我会按照帖子中的说明添加函数的参数。简单,简单。

谢谢