我忘了一个老师告诉我的技巧,允许选择查询作为你的表(假设只有部分数据库用于重复条目)......
THIS_FUNCTION(从OneTable tabA中选择链接,东西,条件,其中condition = IGotSomething)
THIS_FUNCTION(从OneTable tabB中选择链接,东西,条件,其中condition = IlostSomething)
选择tabA.things - tabB.things from tabA inner join tabB on tabA.link = tabB.link
类似的东西。
有人帮我记住了吗?
如果有人要求...我的数据库使用一个表来处理进出的所有事务,由一个列所在的东西定义。为了得到所有东西的清单,我需要看看东西来自哪里(-stock)和东西(+库存)。
在某些情况下,它会来自哪里。
我已经知道如何做到这一点,但我需要这个技巧,我忘了......
糟糕!我忘了提到我需要能够在运行时根据用户需求构建这些查询。这是可定制的,因此构建和重建视图可能会占用比预期更多的进程。
答案 0 :(得分: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