我在MySQL t1和t2中有2个表。两者都有相同的列名。表t1具有巨大的数据,并且与t1相比,t2不是那么大,但是平均时间t2也将与t1具有相同的大小。唯一的区别是id列在两个表中都不匹配。我想从这些专栏中创建一个视图。
我创造的是
CREATE VIEW vw_t1t2 AS SELECT id , name , lastname, depid FROM t1
Union
SELECT id , name , lastname, depid FROM t2;
如果我查询“从* vw_t1t2选择*,其中depid ='100287'”。
视图无法获取正确的数据,当我搜索特定的部门ID时,数据会混合在所有记录中,某些记录具有不同的部门ID。此外,它还需要200秒才能执行查询。
答案 0 :(得分:0)
您可以考虑包装联合的结果
SELECT * FROM
(
SELECT id , name , lastname, depid FROM t1
Union
SELECT id , name , lastname, depid FROM t2
) as sel1
WHERE depid = 2
但让我们看一下EXPLAIN
输出以优化查询