0

我在 MySQL t1 和 t2 中有 2 个表。两者都有相同的列名。表 t1 有大量数据,并且 t2 与 t1 相比没有那么大,但同时 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 where depid='100287' 中选择 *”。

视图没有获取正确的数据,当我搜索特定部门 id 时,数据是所有记录的混合,一些记录具有不同的部门 id。执行查询也需要 200 秒。

4

1 回答 1

0

你可以考虑包装联合的结果

SELECT * FROM
(
   SELECT id , name , lastname, depid FROM t1
   Union
   SELECT  id , name , lastname, depid FROM t2
) as sel1
WHERE depid = 2

但让我们看看EXPLAIN优化查询的输出

于 2013-06-17T21:22:33.243 回答