1

警告:含糊不清的问题会比比皆是,因为我对数据库深有了解。

我刚刚发现我需要使用视图作为 cronned update 语句的代理。我可以在某种程度上使视图正常工作,但是我遇到了行问题。

这篇文章帮助我完成了我需要的更新,但现在我知道视图可以在需要时而不是按 cron 计划运行更新,我如何根据视图的行 ID 或等效项设置视图的列值?

我有我需要的选择:

 SELECT SUM( table2.column1/ (

 SELECT table2constant
 FROM table3
 )
 FROM table2
 WHERE table2table1id = table1id

table1id 是 table1 的 AI id 列。table2table1id 是对 table1id 的 PKd。我希望视图具有与 table2 一样的 table1id 列 PKd,并且视图需要表示每个不同的 table1id。

我敢肯定行话的方式,但希望你能看到我需要什么。

为清晰起见,将提供尽可能多的编辑。

提前谢谢了!

编辑1

我应该创建一个触发器来在插入到 table1 时创建视图吗?刚刚发现我需要/想要的物化?

明晰

我需要每个 table1.table1id 的总和值

进步

使用此代码,我从 table1 获取第一个 id,并且只获取总和。我需要每个 table1.id 的总和。

CREATE VIEW db1.sums as 

SELECT SUM( table2.column1/ (

 SELECT table2constant
 FROM table3
 ) as theSum, table1id
 FROM table1, table2
 WHERE table2.table2table1id = table1.table1id
4

2 回答 2

2

它实际上非常简单。这是一个如何做到这一点的例子。

SELECT SUM( table1.column / table2.column ), table1.*, table2.*
FROM table1, table2 
WHERE table1.id = table2.column_id
于 2012-10-06T17:05:49.660 回答
2

需要明确的是,我仍然不确定您要在这里完成什么,但如果您发布的内容有效,请尝试

SELECT table1.table1id,
    SUM( table2.collumn1 ) / (SELECT table2constant FROM table3 ) as theSum
 FROM table1, table2
 WHERE table2.table2table1id = table1.table1id GROUP BY table1.table1id

(SELECT table2constant FROM table3 )如果它没有理由在数据库中(如果它没有更新),你可以用你的常量替换

于 2012-10-06T19:15:02.983 回答