2

我忘记了一位老师告诉我的一个技巧,它允许选择查询成为您的表(假设只有部分数据库用于重复条目)......

THIS_FUNCTION(从 OneTable tabA 中选择链接、事物、条件,其中条件 = IGotSomething)

THIS_FUNCTION(从 OneTable tabB 中选择链接、事物、条件,其中条件 = IlostSomething)

选择 tabA.things - tabB.things from tabA inner join tabB on tabA.link = tabB.link

类似的东西。

有人帮我记住吗?


如果有人问...我的数据库使用一个表来处理所有进出的事务,由内容所在的列定义。为了获得所有东西的清单,我需要查看东西来自哪里(-stock)以及东西要去哪里(+stock)。

在某些情况下,它的去向也是它的来源。

我已经知道如何做到这一点,但我需要我忘记的那个技巧......


哎呀!我忘了提到我需要能够在运行时根据用户需求构建这些查询。它是可定制的,因此构建和重建视图可能会占用比预期更多的过程。

4

1 回答 1

0

编辑:这是一种方法:

CREATE PROCEDURE this_function()
BEGIN
  Select link, things, conditions from OneTable tabA where conditions = IGotSomething;
END

然后:

CALL this_function();

这是另一种方式,但它会在您的数据库中创建新表:

CREATE ALGORITHM = UNDEFINED VIEW `tabA` AS Select link, things, conditions from OneTable tabA where conditions = IGotSomething;

CREATE ALGORITHM = UNDEFINED VIEW `tabB` AS Select link, things, conditions from OneTable tabB where conditions = IlostSomething;

然后:

Select tabA.things - tabB.things from tabA inner join tabB on tabA.link = tabB.link
于 2013-10-06T00:33:52.830 回答