我有 2 个表。
TABLE_1 ( id, date, column_1 )
TABLE_2 ( id, date, column_1, column_2 )
id 和 date 对两个表都是通用的。我想做一个结合这两者的 View 。
VIEW_LATEST ( index, table_name, id, date)
在 View 中我需要一个索引来分别标识特定的行(不是必须的)。在那里,我将使用表名来标识特定行(id、日期)的详细信息从何处获取的事实。而且,我只需要获取特定时间段(例如上周)的信息。
例如。
TABLE_1 ([ 1, 2012-01-27 ], [2, 2012-02-01 ])
TABLE_2 ([ 1, 2012-01-20 ], [ 2, 2012-01-31 ])
VIEW_LATEST ([ tbl_1, 2, 2012-02-01 ], [ tbl_2, 2, 2012-01-31 ], [ tbl_1, 1, 2012-01-27])
上周 - 2012-01-26 到 2012-02-01,因此 View 中未返回 TABLE_2 第一条记录。 按日期排序。
我需要完全按照上面提到的去做。我寻找类似这样的解决方案,但没有找到。
非常感谢任何实现上述情况的解决方案。此外,期望在向TABLE_1、TABLE_2插入数据时制作一个单独的格式为VIEW_LATEST的表来插入数据,以便在需要时获取最新的。因此,如果无法实现上述场景,这将是一种解决方案。
最佳答案
您可以将表联合在一起。
对于 MySQL(不允许子查询):
(SELECT 'Table_1' as tablename, id, date FROM Table_1
WHERE date BETWEEN TO_DATE('20120126', 'YYYYMMDD') AND TO_DATE('20120201', 'YYYYMMDD'))
UNION
(SELECT 'Table_2' as tablename, id, date FROM Table_2
WHERE date BETWEEN TO_DATE('20120126', 'YYYYMMDD') AND TO_DATE('20120201', 'YYYYMMDD'))
ORDER BY tablename, id, date
结果集将是:
tablename id date
--------- -- -----------
Table_1 1 2012-01-27
Table_2 2 2012-01-31
Table_1 2 2012-02-01
关于mysql - 结合相同的信息。将多个表中的列数据放入 View 的一列中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9101422/