根据另一个表中的值更新视图
Posted
技术标签:
【中文标题】根据另一个表中的值更新视图【英文标题】:Update View based on value from another table 【发布时间】:2013-08-19 10:22:08 【问题描述】:我有两张桌子
表 1:
id 名称 item_ref item_name ---------- ---------- ---------- ---------- 101 abc 1 项目1 102 xyz 2 项目2表 2:
item_ref item_name end_date ---------- ---------- ---------- 1 项1 空 2 项目 2 01-AUG-13 3 项 3 空现在我想创建一个视图,其中仅包含表 1 中的那些项目,其表 2 中的项目尚未过期。
例如,对于上述情况,结果应该是
查看 - 结果
id 名称 item_ref item_name end_date ---------- ---------- ---------- ---------- ---------- 101 abc 1 item1 null这里 102 不存在,因为 item2 已过期。
请帮忙 (使用 Oracle)
【问题讨论】:
这是非常基本的 SQL。掌握任何 SQL 教程,阅读 JOIN,这将是小菜一碟。 只有在没有得到答案的情况下才会提出问题。 【参考方案1】:只需创建视图!
CREATE VIEW schema.view_name AS
SELECT a.id, a.name, a.item_ref, a.item_name, b.end_date
FROM table1 a
JOIN
table2 b
ON (a.item_ref = b.item_ref)
WHERE ( b.end_date IS NULL ) OR (b.end_date > SYSDATE ) ;
每次查询视图时,都会执行子查询,因此视图数据将始终更新。
查看CREATE VIEW
上的 ORACLE 语言参考以获取更多信息:http://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_8004.htm
【讨论】:
以上是关于根据另一个表中的值更新视图的主要内容,如果未能解决你的问题,请参考以下文章