具有相同列名但具有不同的列的2个表的视图

时间:2013-06-17 20:48:39

标签: mysql

我在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秒才能执行查询。

1 个答案:

答案 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输出以优化查询